NULL 처리 함수: NVL·IFNULL·ISNULL·COALESCE·NULLIF
NULL 은 값이 없다는 표시이고, 화면에 보여주거나 계산할 때는 대체 값이 필요합니다. NVL·IFNULL·ISNULL 은 DB 마다 이름이 다른 NULL 대체 함수이고, COALESCE 와 NULLIF 는 네 DB 모두 지원하는 표준 함수입니다. 이 레슨은 이 함수들의 차이와, NULL 이 집계·정렬·문자열 연결에서 조용히 결과를 바꾸는 지점을 직접 실행해 확인합니다.
1. 왜 배우는가
"담당자가 없으면 미배정으로 표시", "실적이 없으면 0으로 계산"처럼 NULL 을 다른 값으로 바꿔야 하는 조회는 실무에서 자주 나옵니다. 이 대체 함수의 이름이 DB 마다 달라(Oracle NVL, MySQL IFNULL, MSSQL ISNULL) 다른 DB 로 코드를 옮길 때마다 문법을 통째로 바꿔야 하는 경우가 많습니다.
COALESCE 는 네 DB 모두 지원하는 표준 함수라 이 문제를 피할 수 있습니다. NULLIF 는 반대로 특정 값을 NULL 로 바꿔, 0 으로 나누는 오류를 막거나 조건을 단순화하는 데 씁니다. 두 함수 모두 COUNT·AVG 같은 집계 함수, ORDER BY 의 정렬 순서, 문자열 연결에도 영향을 주므로 함께 다룹니다.
참고
=비교에서 NULL 이 3값 논리로 UNKNOWN 이 되는 원리와 NOT IN 의 NULL 함정은 중급 02 에서 다뤘습니다. 이 레슨은 그 위에서 "NULL 을 다른 값으로 바꾸는 함수"에 집중합니다.