[Oracle] Null값을 치환해주는 (NVL,NVL2) 함수 사용법 & 예제
- DB/Oracle
- 2019. 1. 23.
오라클을 사용하다보면 NULL값을 다른 함수로 치환해주어야하는 경우가 많습니다. 이럴경우 오라클에서 제공하는 NVL함수를 써서 쉽게 처리할 수 있는데요. NVL함수는 매우편리하지만 오라클에서만 제공하는 함수이다보니 다른 데이터베이스와의 호환을 염두해둔다면 피해야할 함수이기도 합니다. (이 쿼리로 짜놓고 MY_SQL이나 MS_SQL에서 사용한다면....?? 끔찍합니다. ㅠㅠ)
1. NVL함수 사용법
NVL(컬럼,NULL일경우 반환값)
NVL(컬럼,0) -- 컬럼의 값이 NULL일경우 0으로 치환
NVL(컬럼,'') -- 컬럼의 값이 NULL일경우 ''으로 치환
NVL(컬럼,SYSDATE) --컬럼의 값이 NULL일경우 현재날짜로 치환
예제 (COMPANY_NO)가 NULL이면 ''으로 치환
SELECT
NVL(COMPANY_NO,'')
FROM COMPANY_TABLE
WHERE NATION= 'KR';
2. NVL2함수 사용법
NVL2함수란 쉽게 생각해서 DECODE함수와 NVL함수를 합쳐놓은 형태라고 생각하시면 됩니다.
NVL2('컬럼','NULL이 아닐 경우 반환값','NULL일경우 반환값')
NVL2(컬럼,'정규직','비정규직') -- 컬럼의 값이 NULL이 아닐경우 정규직 NULL일경우 비정규직
NVL2(컬럼,'남','여') -- 컬럼의 값이 NULL이 아닐경우 남 NULL일경우 여
예제 (COMPANY_NO)가 NULL이 아니면 계열사 NULL이면 비계열사
SELECT
NVL2(COMPANY_NO,'계열사','비계열사')
FROM COMPANY_TABLE
WHERE NATION= 'KR'
'DB > Oracle' 카테고리의 다른 글
[Oracle] 오라클 데이터 타입 변환(TO_CHAR, TO_NUMBER, TO_DATE) 사용법 & 예제 (0) | 2019.01.25 |
---|---|
[Oracle] 편리한 조건함수 DECODE 함수 사용법 & 예제 (0) | 2019.01.24 |
[Oracle] 소수점 처리 올림,반올림,버림 함수 (CEIL,ROUND,TRUNC) 사용법 & 예제 (0) | 2019.01.22 |
[Oracle] Union해서 나온 결과 ROW 값 합치기 (0) | 2019.01.21 |