NVL, NVL2, NULLIF는 NULL값을 치환할 때 사용할 수 있는 함수이다.
이 셋은 Oracle에서만 지원하는 함수이기 때문에 MySQL 등에서는 사용할 수 없다.
NVL
NVL(Column, Value)
- NULL값을 다른값으로 변경할 때 사용한다.
- Column의 값이 NULL일경우 Value의 값을 반환하고, Column의 값이 NULL이 아닐 경우 Column의 값을 반환한다.
예시
NVL(Column, NULL일 경우 반환값)
NVL(컬럼, 'IS NULL') -- 컬럼의 값이 NULL 인 경우 'IS NULL' 로 치환
NUL(컬럼, 9999) -- 컬럼의 값이 NULL인경우 9999로 치환
NVL2
NVL2(Column, Value1, Value2)
- Decode 와 NVL을 합쳐놓은 형태의 함수이다.
- Column의 값이 NULL이 아닐 경우 Value1의 값을 반환하고, Column의 값이 NULL일경우 Value2의 값을 반환한다.
예시
NVL2(Column, NULL이 아닐경우 반환값, NULL일 경우 반환값)
NVL2(컬럼, '있음', '없음') --컬럼의 값이 NULL이 아니면 '있음'으로, NULL이면 '없음' 으로 치환
NVL2(컬럼, DATE, '미응시') -- 컬럼의 값이 NULL이 아니면 날짜로, NULL이면 '미응시' 로 치환
NULLIF
NULLIF(Value1, Value2)
- 특정 값인 경우 NULL로 치환하기 위한 함수이며 NVL과 기능이 반대이다.
- Value1과 Value2의 값이 동일하면 NULL을 반환하고, 값이 동일하지 않으면 Value1을 반환한다.
- 두 개의 Column 값이 동일한지 판단할 때도 사용한다.
예시
NULLIF('호랑이', '호랑이') -- NULL값 반환
NULLIF('사자', '호랑이') -- '사자' 반환
[Oracle] 오라클 NVL, NVL2 함수 사용방법 (null, 공백, 치환) (tistory.com)
https://meyouus.tistory.com/231
'DataBase > Oracle' 카테고리의 다른 글
[Oracle] 자릿수 채우기, 공백 채우기 - LPAD, RPAD (0) | 2022.11.20 |
---|---|
[Oracle] 조회 순번 매기기 - ROWNUM, ROW_NUMBER() (0) | 2022.11.20 |
[Oracle] Pro*C - 간단정리 (0) | 2022.10.10 |
[Oracle] 문자열 관련 함수 - SUBSTR, INSRT, REPLACE, TRANSLATE, CONCAT (0) | 2022.08.11 |
[Oracle] DML과 DECODE, CASE (0) | 2022.06.29 |