본문 바로가기
BigData TIL/Database

[Oracle] NVL, NVL2

by xxub 2022. 1. 7.
반응형

데이터를 열어보면 null 값을 다른 값으로 바꿔줘야 한다거나 아무 값도 들어있지 않아서 변경해줘야 하는 경우가 생긴다. 이럴 경우 NVL을 사용할 수 있다. 하지만 DECODE와 마찬가지로 오라클에서만 사용할 수 있는 함수이다. 

NVL (only oracle)

해당하는 컬럼의 값이 null인 경우 지정한 값으로 치환할 수 있다. 모든 데이터 타입에 적용이 가능하다.

NVL(해당 컬럼, NULL인 경우 치환값)
NVL(해당 컬럼, 0) -- 컬럼의 값이 NULL인 경우 0 으로 치환

ex)
Select company
, nvl(emp_no, 0)
from tablaA ;

 

NVL2 (only oracle)

해당하는 칼럼의 값이 null인 경우와 null이 아닌 경우를 원하는 값으로 치환할 수 있다. NVL2 함수는 DECODE 함수와 비슷한 if else문의 기능을 가지고 있다. 

NVL2(해당 컬럼, NULL이 아닐 경우 치환값, NULL일 경우 치환값)
NVL2(해당 컬럼, '연구원' , '사원') -- 컬럼의 값이NULL이 아닌 경우 연구원으로 치환 NULL인 경우 사원으로 치환

ex)
Select company
, nvl2(emp_no, '연구원', '사원')
from tablaA ;
반응형

'BigData TIL > Database' 카테고리의 다른 글

[Oracle] ABS, 절댓값 구하기  (0) 2022.01.11
[Oracle] group by, having절  (0) 2022.01.10
[Oracle] case when, decode  (0) 2022.01.06
[Oracle] JOIN 정리  (0) 2022.01.05
[Oracle] UNION , UNION ALL - SELECT 합치기  (0) 2022.01.04