NULL 개념
NULL이란 값이 존재하지 않음을 명시하는 상태로,
데이터가 없는 것이 아니라 실제 그 값에 대한 정보가 없다는 것을 나타낸다.
주로 무슨 값인지 확정지어지지 않았을 때, 값 자체가 존재하지 않는 값일 때 사용한다.
오라클에서는 빈 문자열('')도 NULL로 취급하며 NULL 값을 포함하는 모든 연산은 NULL을 반환한다.
NULL 관련 함수
IS NULL
- NULL(또는 빈 문자열)은 값을 비교할 때 =, <> 등의 부호를 사용할 수 없기 때문에 값이 NULL인지 알고 싶을 때 IS NULL 사용
SELECT col1, col2 FROM tbl WHERE col1 IS NULL;
IS NOT NULL
- 값이 NULL이 아닌 것을 찾고 싶을 때 IS NOT NULL 사용
SELECT col1, col2 FROM tbl WHERE col1 IS NOT NULL
NVL(col, val)
- col이 NULL이면 val, 아니면 col을 반환
SELECT NVL(col, val) FROM tbl;
NVL2(col, val1, val2)
- col이 NULL이 아니면 val1, NULL이면 val2를 반환
SELECT NVL2(col, val1, val2) FROM tbl;
NVLIF(col1, col2)
- col1 = col2 이면 NULL, 아니면 col1을 반환
SELECT NVLIF(col1, col2) FROM tbl;
COALESCE(col1, col2, ... colN)
- col1부터 N 까지의 값 중 NULL이 아닌 가장 첫 번째 값을 반환
SELECT COALESCE(col1, col2, ... colN) FROM tbl;
NULL 정렬
- 오라클에서 NULL 값은 가장 큰 값으로 간주하기 때문에 정렬을 따로 하지 않으면 맨 위에 위치하게 되는데, NULL 값이 가장 밑으로 가게 하고 싶으면 ORDER BY 절에서 NULLS LAST(반대는 NULLS FIRST)를 사용한다.