DB/Oracle
[ORACLE] NVL 과 NVL2
codingD
2020. 7. 10. 10:57
오라클에서 사용하는 NULL값을 다른 값으로 치환하는 방법
- NVL 함수를 이용하여 쉽게 처리 가능
- 주의 !! 오라클에서만 제공하기 때문에 다른 데이터베이스 (MySQL, MS_SQL 등) 에서는 사용 불가
1. NVL(칼럼, NULL일 때 반환값)
NVL(컬럼, 0) -- NULL 일 때, 0으로 치환
NVL(컬럼, '') -- NULL 일 때, ''으로 치환
NVL(컬럼, SYSDATE) -- NULL 일 때, 현재 날짜로 치환
-- 칼럼이 NULL일 때 A 반환
SELECT NVL(NULL, 'A') FROM DUAL;
2. NVL(칼럼, NULL이 아닐 때 반환값, NULL일 때 반환값)
- DECODE 함수와 NVL 함수를 합쳐놓은 형태
NVL2(컬럼, 0, 1) -- NULL이 아닐 때는 0, NULL일 때는 1
NVL2(컬럼, '남', '여') -- NULL이 아닐 때는 남, NULL일 때는 여
-- 칼럼이 NULL이 아니면 A, NULL이면 B 반환
SELECT NVL2(NULL, 'A', 'B') FROM DUAL;