오라클에서 NVL2 함수 2 2 10,826

by 김정식 NVL2 NVL [2002.01.08 00:00:00]



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
by heromin [2003.10.31 13:16:14]
오옹.. 좋네영.. 이런게 잇엇구나

by 잽스페로 [2011.03.17 09:37:43]
재미있는 함수이네요 하지만 DECODE 대신 사용하기엔 무리가 있어보입니다.
TURNER 값이 0 인데 1로 되는게 값이 잇음 1 없음 0 이니 ..
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입