다른 명령
오라클 NVL
NVL( 컬럼명 , null인 경우 값 )
- 대상의 값이 NULL 인 경우 지정한 값으로 치환.
- 모든 데이터 타입에 적용 가능.
select nvl(sal, 0) from emp;
- emp 테이블에 sal 컬럼이 null 일 경우 0으로 치환
오라클 NVL2
NVL2( 컬럼명 , null 아닌경우 값, null인 경우 값 )
- 대상의 값이 NULL 인 경우와 NULL이 아닌경우를 지정한 값으로 치환
- NVL2 함수는 DECODE함수와 비슷한 IF문의 기능 가지고 있음.
- DECODE 보다 더 간편함.
select NVL2(sal, sal, '재고없음') from emp;
- emp 테이블에 sal이 NULL이 아닌경우 sal로 치환, NULL인 경우 '재고없음' 으로 치환
NVL, NVL2 예제
WITH GOODS AS ( SELECT '선풍기' AS GOODS_NM, '39000' AS GOODS_PRICE, '77' AS GOODS_QTY FROM DUAL UNION ALL SELECT '노트북' AS GOODS_NM, '420000' AS GOODS_PRICE, '62' AS GOODS_QTY FROM DUAL UNION ALL SELECT '안경' AS GOODS_NM, '30000' AS GOODS_PRICE, null AS GOODS_QTY FROM DUAL ) SELECT GOODS_NM , GOODS_PRICE , GOODS_QTY , NVL(GOODS_QTY,0) as nlv1 , NVL2(GOODS_QTY,GOODS_QTY,'재고없음') AS nvl2 FROM GOODS;