Oracle Database TIP
NVL2 함수의 사용 12 4 50,388

by 김정식 NVL NVL2 [2002.04.30]


  NVL2라는 함수 DECODE랑 조금 비슷한 놈 같기도 하고요.. 참 편한놈이네용..

  문법 : NVL2(expr,expr1,expr2);

  expr의 값이 null이 아닐 경우에는 expr1의 값을 반환 하고요 null일 경우에는 expr2의 값을 반환 합니다.

  
-- 보통 SQL문을 실행 했을 경우
SQL> SELECT ename, comm FROM emp;

ENAME                  COMM
---------------- ----------
SMITH               
ALLEN                   300
WARD                    500
JONES               
MARTIN                 1400
BLAKE               
CLARK                
SCOTT               
KING                 
TURNER                   0
ADAMS             


-- NVL함수를 사용 했을 경우
SQL> SELECT ename, NVL(comm, 0) comm  FROM emp;

ENAME                  COMM
---------------- ----------
SMITH                     0
ALLEN                   300
WARD                    500
JONES                     0
MARTIN                 1400
BLAKE                     0
CLARK                     0
SCOTT                     0
KING                      0
TURNER                    0
ADAMS                     0


-- NVL2함수를 사용 했을 경우
SQL> SELECT ename, NVL2(comm, 1, 0) FROM emp;

ENAME                COMM
--------------- ----------
SMITH                    0
ALLEN                    1
WARD                     1
JONES                    0
MARTIN                   1
BLAKE                    0
CLARK                    0
SCOTT                    0
KING                     0
TURNER                   1
ADAMS                    0
    

- 강좌 URL : http://www.gurubee.net/lecture/1326

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

by Soo [2008.10.17 14:37:18]
NVL2(comm, 1, 0) 저 부분에서

출력값 오타 났습니다 TURNER은 COMM이 0인데도 1이라고 찍혀있네요

수정 부탁드려요~

by 마농 [2008.10.17 16:10:57]
TURNER는 Null이 아닌 0이라는 값을 가지고 있으므로 1이 나오는 것이 맞습니다.

by 로이터 [2008.10.24 07:52:54]
좋은 정보네요 . 감사합니다 .

by 헙 ㅋ [2012.02.21 18:11:44]
Soo님과 마농님의 댓글을 보니 참 잘 만들어진 예문으로 보이네요. 0인 경우는 놓칠 수도 있었을텐데요.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입