NULL 관련 함수 4개의 간단한 사용법이 쿼리 6-7에 나와 있습니다.
쿼리 6-7 NULL 관련 함수
SELECT NVL( NULL, 'N/A' ) ,NVL2( 1, 2, 3 ) ,COALESCE( NULL, NULL, 5, 4, NULL ) ,NULLIF( 'NULL', 'null' ) FROM DUAL;
▲ 그림 6-6 쿼리 6-7을 실행한 결과
쿼리와 결과를 비교해 보면 각 함수의 기능을 쉽게 알 수 있을 것입니다. NVL 함수는 첫 번째 매개변수가 NULL이므로 두 번째 매개변수인 ‘N/A’를 반환했습니다. NVL2 함수의 경우 첫 번째 매개변수인 1이 NULL이 아니므로 2를 반환했군요. COALESCE 함수는 매개변수 중 NULL이 아닌 첫 번째 값인 5를 반환했습니다.
마지막으로 NULLIF 함수의 경우 첫 번째와 두 번째 매개변수 값이 같지 않으므로 첫 번째 값인 ‘NULL’을 반환했습니다. 여기에서 한 가지 눈여겨 볼 점이 있는데, ‘NULL’과 ‘null’은 분명히 다른 값입니다(이 두 값은 따옴표로 감쌌기 때문에 NULL이 아닌 문자 값입니다). 오라클의 경우 대소문자를 명확히 구분하므로 두 값이 달라 첫 번째 매개변수 값을 반환했죠. 참고로 대소문자를 구분하지 않는, 즉 ‘NULL’과 ‘null’을 같은 값으로 처리하는 RDBMS도 있습니다.