카테고리 없음

문제 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