SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO, "NONE") FROM PATIENT
WHERE AGE<=12 AND GEND_CD="W"
ORDER BY AGE DESC, PT_NAME ASC
IFNULL
해당 Column의 값이 NULL을 반환할 때, 다른 값으로 출력할 수 있도록 하는 함수이다.
- 기본 구조
SELECT IFNULL(Column명, "Null일 경우 대체 값") FROM 테이블명;
- 예시
// NAME Column이 NULL인 경우 "No name"을 출력, NULL이 아닌 경우 NAME Column을 출력 SELECT IFNULL(NAME, "No name") as NAME FROM ANIMAL_INS
ISNULL
- 예시
// MS-SQL인 상황, ISNULL() 예시 // NAME Column이 NULL인 경우 "No name"을, Null이 아닌 경우 NAME Column의 값을 출력 SELECT ISNULL(NAME, "No name") as NAME FROM ANIMAL_INS
CASE
해당 Column 값을 조건식을 통해 True, False를 판단하여 조건에 맞게 Column값을 변환할 때 사용하는 함수이다.
- 기본 구조
CASE WHEN 조건식1 THEN 식1 WHEN 조건식2 THEN 식2 ... ELSE 조건에 맞는경우가 없는 경우 실행할 식 END
- 예시
// NAME Column의 IS NULL 조건이 True인 경우 "No name" 출력 // WHEN 조건들에 True인 조건이 없을 경우 ELSE 문을 통해 NAME Column의 값 출력 // END 이후 그 Column의 별칭을 NAME으로 지정 SELECT CASE WHEN NAME IS NULL THEN "No name" ELSE NAME END as NAME FROM ANIMAL_INS
COALESCE
COALESCE는 지정한 표현식들 중에 NULL이 아닌 첫 번째 값을 반환한다.
모든 DBMS에서 사용가능
표현식은 여러 항목 지정이 가능하고, 처음으로 만나는 NULL이 아닌 값을 출력한다.
표현식이 모두 NULL일 경우엔 결과도 NULL 반환
COALESCE는 배타적 OR 관계 열에서 활용도가 높다.
- 기본 구조
// NULL 처리 상황 SELECT COALESCE(Column명1, Column명1이 NULL인 경우 대체할 값) FROM 테이블명 // 배타적 OR 관계 열 // Column1 ~ 4 중 NULL이 아닌 첫 번째 Column을 출력 SELECT COALESCE(Column명1, Column명2, Column명3, Column명4) FROM 테이블명
- 예시
// NAME Column의 값이 NULL인 경우 다음 표현식으로 넘어간다. // 다음 표현식인 "No name"이 Null이 아니므로 "No name"을 출력. SELECT COALESCE(NAME, "No name") FROM ANIMAL_INS