본문 바로가기

Backend/SQL

[프로그래머스_SQL] 12세 이하인 여자 환자 목록 출력하기 IFNULL, NVL

 

MySQL

SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO, 'NONE')
FROM PATIENT
WHERE AGE <= 12
  AND GEND_CD = 'W'
ORDER BY AGE DESC, PT_NAME ASC;

MySQL은 IFNULL을 이용해서 NULL 값 처리를 할 수 있습니다.

 

Oracle

SELECT PT_NAME, PT_NO, GEND_CD, AGE, NVL(TLNO, 'NONE')
FROM PATIENT
WHERE AGE <= 12
  AND GEND_CD = 'W'
ORDER BY AGE DESC, PT_NAME ASC;

Oracle은 NVL을 이용해서 NULL 값 처리를 할 수 있습니다.

 

두 함수는 동일한 기능을 하며 DBMS에 따라 다르게 사용합니다.

IFNULL(VALUE1, VALUE2)

NVL(VALUE1, VALUE2)

VALUE1 값이 null이면 VALUE2 값을 출력하고, VALUE1 값이 null이 아니면 VALUE1 값을 출력합니다.