행위

오라클 nvl nvl2

DB CAFE

Dbcafe (토론 | 기여)님의 2023년 4월 4일 (화) 00:16 판 (새 문서: == 오라클 NVL == <source> NVL 함수 [ NVL( 대상 , null인 경우 값 ) ] </source> * 대상의 값이 NULL 인 경우 지정한 값으로 치환. * 모든 데이터 타입에...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
thumb_up 추천메뉴 바로가기


1 오라클 NVL[편집]

NVL 함수 [ NVL( 대상 , null인 경우 값 ) ]
  • 대상의 값이 NULL 인 경우 지정한 값으로 치환.
  • 모든 데이터 타입에 적용 가능.
select nvl(sal, 0)  from emp;

-> emp 테이블에 sal 컬럼이 null 일 경우 0으로 치환


2 오라클 NVL2 =[편집]

NVL2 함수 [ NVL2( 대상, null 아닌경우 값, null인 경우 값 ) ]
  • 대상의 값이 NULL 인 경우와 NULL이 아닌경우를 지정한 값으로 치환
  • NVL2 함수는 DECODE함수와 비슷한 IF문의 기능 가지고 있음.
  • DECODE 보다 더 간편함.
select NVL2(sal, sal, '재고없음')  from emp;
  • emp 테이블에 sal이 NULL이 아닌경우 sal로 치환, NULL인 경우 '재고없음' 으로 치환


2.1 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;