아직 정의되지 않은 값 또는 배정이 안 된 상태이다.
빈 값(공백)이나 0과는 다른 값이므로 주의해야 한다.
+
-
*
/
)을 해도 무조건 NULL이 나온다NVL(칼럼, 칼럼값이 NULL일 때 대신 사용할 값)
ISNULL(표현식1, 표현식2)
과 동일하게 사용한다.NAME이 없으면 '아무개', KOR, ENG, MATH가 없으면 0으로 조회하기
SELECT
NVL(NAME, '아무개') AS STU_NAME
, NVL(KOR, 0)
, NVL(ENG, 0)
, NVL(MATH, 0)
FROM
SAMPLE
ORDER BY
STU_NAME ASC;
이름과 총점을 조회하기
- 이름이 없으면 '아무개', 점수가 없으면 0점 처리
- 결과
- 아무개 300
- 영숙 200
- 정수 200
- 지영 200
SELECT
NVL(NAME, '아무개') AS 이름
, NVL(KOR, 0) + NVL(ENG, 0) + NVL(MATH, 0) AS 총점
, KOR + ENG + MATH
FROM
SAMPLE;
NVL2(칼럼, NULL이 아닐 때 사용할 값, NULL일 때 사용할 값)
SELECT
NVL2(NAME, NAME || '님', '아무개')
, NVL2(KOR, '응시', '결시')
, NVL2(ENG, '응시', '결시')
, NVL2(MATH, '응시', '결시')
FROM
SAMPLE;
NULLIF(표현식1, 표현식2)
SELECT
NAME
, EMP_NO
, MGR
, NULLIF(MGR, 120)
FORM EMPLOYYES ;
COALESCE(표현식1, 표현식2, ...)
SELECT
NAME
, COALESCE(COM, SAL)
FROM EMPLOYYES ;