"오라클 nvl nvl2"의 두 판 사이의 차이
DB CAFE
(→오라클 NVL) |
|||
(같은 사용자의 중간 판 하나는 보이지 않습니다) | |||
13번째 줄: | 13번째 줄: | ||
== 오라클 NVL2 == | == 오라클 NVL2 == | ||
<source lang=sql> | <source lang=sql> | ||
− | + | NVL2( 컬럼명 , null 아닌경우 값, null인 경우 값 ) | |
</source> | </source> | ||
* 대상의 값이 NULL 인 경우와 NULL이 아닌경우를 지정한 값으로 치환 | * 대상의 값이 NULL 인 경우와 NULL이 아닌경우를 지정한 값으로 치환 | ||
41번째 줄: | 41번째 줄: | ||
FROM GOODS; | FROM GOODS; | ||
</source> | </source> | ||
+ | |||
+ | [[category:oracle]] |
2023년 4월 4일 (화) 00:20 기준 최신판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
1 오라클 NVL[편집]
NVL( 컬럼명 , null인 경우 값 )
- 대상의 값이 NULL 인 경우 지정한 값으로 치환.
- 모든 데이터 타입에 적용 가능.
select nvl(sal, 0) from emp;
- emp 테이블에 sal 컬럼이 null 일 경우 0으로 치환
2 오라클 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;