카테고리 없음
문제 28. 12세 이하인 여자 환자 목록(난이도 5)(CASE ,IFNULL 복습)
kagan-draca
2024. 7. 17. 15:40
문제에 난이도가 있었다고 생각한 이유는
CASE 문 사용에 숙달되지 않았고, IFNULL이 생각나지 않았기 때문이다...
CASE문으로 NULL을 처리할 경우
CASE
WHEN TLNO IS NULL THEN "NONE" (중요)
ELSE TLNO
END AS TLNO
FROM PATIENT
으로 처리할 수 있는데 처음에 WHEN '컬럼명' 없이 IS NULL로(오류 발생 원인)
-> WHEN IS NULL THEN "NONE"
으로 작성해 오류가 발생했었다.
IFNULL로 문제를 풀 경우 간단하게 IFNULL(TLNO,"NONE")으로 해결할 수 있었다.
제출한 코드 :
1. CASE 문
SELECT PT_NAME, PT_NO, GEND_CD, AGE,
CASE
WHEN TLNO IS NULL THEN "NONE"
ELSE TLNO
END AS TLNO
FROM PATIENT
WHERE AGE BETWEEN 0 AND 12 && GEND_CD = 'W'
ORDER BY AGE DESC, PT_NAME ASC
2. IFNULL
SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO,"NONE") AS TLNO
FROM PATIENT
WHERE AGE BETWEEN 0 AND 12 && GEND_CD = 'W'
ORDER BY AGE DESC, PT_NAME ASC