자신에게 친절할 것 :)

Data Science/MySQL

[프로그래머스 sql] coalesce()로 null 다른 값으로 변환

Tashapark 2025. 2. 4. 23:18
728x90
반응형

12세 이하인 여자 환자 목록 출력하기

 

- 이게.. 왜 안될까.. ?

 

 

수정 전

SELECT PT_NAME, PT_NO, GEND_CD, AGE, 
 CASE WHEN TLNO = NULL THEN TLNO = 'NONE' ELSE TLNO -- none이 안 뜨고.. 사라짐. 
 END AS TLNO
FROM PATIENT
WHERE AGE <= 12
ORDER BY AGE DESC, PT_NAME;

 

수정 후 1)

- 얼추 맞는 코드로 보이나..

- 근데, tlno가 숫자로 되어 있기 때문에.. 제대로 동작하지 않음.

SELECT PT_NAME, PT_NO, GEND_CD, AGE, 
 CASE WHEN TLNO IS NULL THEN 'NONE' ELSE TLNO -- null, none은 = 연산자가 안되서, is 써야 함.. 
 END AS TLNO
FROM PATIENT
WHERE AGE <= 12
ORDER BY AGE DESC, PT_NAME;

 

수정 후 2)

- 얼추 맞는 코드로 보이나..

-... 다른 게 아니라 문제  잘못 읽어서 젠더 코드를 까먹었음... 왜이러니 증맬.

SELECT PT_NAME, PT_NO, GEND_CD, AGE, 
COALESCE(TLNO, 'NONE') AS TLNO --  coalesce() 써줄 것 아님 ifnull()
FROM PATIENT
WHERE GEND_CD = 'w' and AGE <= 12
ORDER BY AGE DESC, PT_NAME;

 

728x90
반응형