
문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/132201
SELECT PT_NAME,
PT_NO,
GEND_CD,
AGE,
IF(TLNO IS NULL, 'NONE', TLNO) AS TLNO
FROM PATIENT
WHERE AGE <= 12 AND GEND_CD = 'W'
ORDER BY AGE DESC, PT_NAME ASC;
IF(조건, 참일때 출력값, 거짓일때 출력값)
IFNULL(변수명,대체값)
해당 변수가 NULL일때 대체값을 출력한다.
ISNULL(변수명)
해당 변수가 NULL이면 1, NULL이 아니면 0을 출력한다.
CASE
WHEN (조건) THEN (출력)
END
다른풀이1
SELECT PT_NAME,
PT_NO,
GEND_CD,
AGE,
IFNULL(TLNO, 'NONE') AS TLNO
FROM PATIENT
WHERE AGE <= 12 AND GEND_CD = 'W'
ORDER BY AGE DESC, PT_NAME ASC;
다른풀이2
SELECT PT_NAME,
PT_NO,
GEND_CD,
AGE,
CASE
WHEN TLNO IS NULL THEN 'NONE'
WHEN TLNO IS NOT NULL THEN TLNO
END AS TLNO
FROM PATIENT
WHERE AGE <= 12 AND GEND_CD = 'W'
ORDER BY AGE DESC, PT_NAME ASC;