Technique/MySQL

[Lv.1] 12세 이하인 여자 환자 목록 출력하기[IFNULL, IF, CASE WHEN, COALESCE]

먼치 2024. 8. 18. 19:02

 

문제 해결을 위한 개념 정리

 

✅ IFNULL

 

⇒  컬럼에 있는 값이 Null이면 대체할 값을 표기하고, Null이 아니면 그대로 값을 출력한다

 IFNULL(NAME, “No name”)

 

 

✅NULL을 다른 값으로 반환하는 함수들 

 

COALESCE(컬럼 명, 대체할 값)

COALESCE(name,"No name")

>> 컬럼 N개 추가 가능

COALESCE(컬럼1, 컬럼2, "No name")

⇒  COALESCE(컬럼1, 컬럼2, 대체할 값)

: 컬럼1 값이 Null이면 컬럼2 값 반환, 컬럼2 값이 Null이면 대체할 값 반환

IF(조건식, 두번째 인자, 세 번째 인자)

: 조건식의 결과가 True면 두번째 인자를 반환하고, False라면 세 번째 인자를 반환

IF(Name IS NOT NULL, NAME, “No name”)

 

Case when()

  • case when ~ end : 정확하게 내가 원하는 대로 기준으로 값을 구별
  • 0과 1로 분류할 때 많이 사용
case 
	when name is null then “No name”
	else name
end

 

 

문제 해결 코드

 

 

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;