Database/Oracle

[Oracle] 함수(FUNCTION)_NULL 처리 함수

21종 2023. 7. 3. 08:53

< 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;