< NULL 처리 함수 >
NVL
(컬럼, 해당 컬럼이 NULL일 경우 반환할 값)
SELECT EMP_NAME, BONUS, NVL(BONUS, 0)
FROM EMPLOYEE;
-- 전 사원의 이름 보너스 포함 연봉
SELECT EMP_NAME, (SALARY * SALARY * BONUS) * 12, (SALARY + SALARY * NVL(BONUS, 0)) * 12
FROM EMPLOYEE;
SELECT DEPT_CODE, NVL(DEPT_CODE, '부서없음')
FROM EMPLOYEE;
NVL2(컬럼, 반환값1, 반환값2)
컬럼값이 존재할경우 반환값) 반환
컬럼값이 NULL일 경우 반환값2 반환
SELECT EMP_NAME, BONUS, NVL2(BONUS, 0.7, 0.1)
FROM EMPLOYEE;
SELECT EMP_NAME, DEPT_CODE, NVL2(DEPT_CODE, '부서있음', '부서없음')
FROM EMPLOYEE;
NULLIF(비교대상1, 비교대상2)
-- 두 개의 값이 일치하면 NULL 반환
-- 두 개의 값이 일치하지 않으면 비교대상 1 반환
SELECT NULLIF('123','123') FROM DUAL;
SELECT NULLIF('123','456') FROM DUAL;