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
반응형
'Data Science > MySQL' 카테고리의 다른 글
[프로그래머스 sql] date_format() 사용할 것. (0) | 2025.02.04 |
---|---|
[프로그래머스 sql] group by는 select 값이 전부 포함되어야 함. (0) | 2025.02.03 |
[HackerRank sql] Symmetric Pairs 다소 이해가 안감 (0) | 2025.01.28 |
[HackerRank sql] where절과 from절 서브쿼리 차이 (0) | 2025.01.28 |
[HackerRank sql] 집계함수 내에도 필요하면 distinct 쓸 것. (0) | 2025.01.26 |