DB(SQL)

[SQL] 단일행 함수 - NULL처리 함수 NVL, NVL2, NULLIF

이나피스 2022. 3. 26. 20:31
반응형

NVL

해당 컬럼값이 NULL일 떄 : 제시한 특정값 반환

해당 컬럼값이 NULL이 아닐 때 : 기존 컬럼값 반환

NVL(컬럼명, 해당컬럼명이NULL일경우반환할값)
--사원명, 보너스 조회 시 보너스가 없으면 0으로 출력
SELECT EMP_NAME, BONUS, NVL(BONUS,0) AS "NULL 처리후"
FROM EMPLOYEE;

SELECT EMP_NAME, DEPT_CODE, NVL(DEPT_CODE, '없음') AS "NULL 처리후"
FROM EMPLOYEE;

 

NVL2

NVL2(컬럼명, NULL이아닐때출력값, NULL일때출력값)
--보너스가 있는 사원은 보너스 있음, 보너스가 없는 사람은 보너스가 없음으로 조회
SELECT EMP_NAME,BONUS,NVL2(BONUS,'있음','없음') AS "보너스 유무"
FROM EMPLOYEE;

 

NULLIF

두 값이 동일할 경우 : NULL 반환

두 값이 상이할 경우 : 비교대상1 반환

NULLIF(비교대상1, 비교대상2)
SELECT NULLIF('123','123')
FROM DUAL; --NULL반환

SELECT NULLIF('123','456')
FROM DUAL; --'123'반환
반응형