Programming/오라클[SQL]

오라클[sql] NVL / NVL2

콩king 2022. 8. 22. 12:08

NVL()  /  NVL2()

- NULL 처리하기 위한 함수 NVL

- NVL() / NVL2() : NULL 을 0 또는 다른 값으로 변환하기 위한 사용하는 함수

- 오라클에만 있음

 

NVL (   ,   )

- NVL (컬럼, A ) : 컬럼이 NULL 아니면 컬럼, NULL 이면 A 출력

 

NVL2 (   ,    ,   )

- NVL2(컬럼, A, B) : 컬림이 NULL 아니면 A 출력, NULL 이면 B 출력

 

예제

SELECT ename, sal, comm, sal+comm

FROM emp

WHERE deptno = 30;

-  * comm 에 있는 null 때문에 산술연산이 제대로 되지않습니다.

SELECT ename, sal, comm
     , sal+comm
     , sal+NVL(comm, 0) AS "NVL()"
     , NVL2(comm, sal+comm, sal) AS "NVL2()"
FROM emp

WHERE deptno = 30;