NULL 값과 관련 된 데이터를 처리하는 함수이다
NVL
null 값을 실제 값으로 변환한다 (들어갈 곳의 데이터 유형과 일치해야 함)
NVL(commission_pct, 0) -- commission_pct의 모든 null 값을 실제 0 값으로 저장
NVL(hire_date, '01-JAN-97') -- hire_date의 모든 null 값을 실제 '01-JAN-97' 날짜 값으로 저장
NVL(job_id, 'No Job Yet') -- job_id의 모든 null 값을 실제 'No Job Yet' 문자열 값으로 저장
NVL2
첫 번째 표현식을 검사해서 null이 아니면 두 번째 표현식을 반환하고 null이면 세 번째 표현식 반환
SELECT last_name, salary, commission_pct, NVL2(commission_pct, 'SAL+COMM', 'SAL') income
FROM employees
WHERE department_id IN (50, 80);
NULLIF
입력받은 두 표현식이 같으면 null을 반환하고 다르면 두 번째 인자의 표현식을 반환
SELECT first_name, LENGTH(first_name) "expr1",
last_name, LENGTH(last_name) "expr2",
NULLIF(LENGTH(first_name), LENGTH(last_name)) result
FROM employees;
COALESCE
NVL 함수와 비슷하다
첫 번째 표현식이 null이 아니면 첫 번째 표현식을, 두 번째 표현식이 null이 아니면 두 번째 표현식을... (인자 값 제한 없음)
SELECT last_name, employee_id,
COALESCE(TO_CHAR(commission_pct), TO_CHAR(manager_id), 'No commission and no manager') explanation
FROM employees;