본문 바로가기
DBMS/Oracle

[Oracle] NVL , NVL2, DECODE

by 성은2 2020. 12. 9.


1. NVL함수 : NULL일경우 (Oracle 함수

NVL (value,0) 
-- value가 null 일경우 0을 반환 / 그렇지 않을경우 value값을 반환

ex )  NVL(컬럼, 'SYSDATE') -> 컬럼 값이 없을 경우 SYSDATE를 반환

 

2. NVL2 함수 : NULL이 아닐경우  

NVL2 (expr1, expr2, expr3) 
--  expr1이 null이 아닌경우 expr2를 반환,
--  expr1이 null인 경우 expr3을 반환한다.

ex ) SELECT NVL2(ENAME, '있음', '없음')
       FROM EMP;

 


3-1. DECODE 함수 : 조건과 결과를 나열하는 방식

DECODE(컬럼, 조건1, 결과1, 조건2, 결과2, else) column
-- 컬럼값이 조건1일경우 결과1을, 조건2일 경우 결과2를. 그 외 else를 반환
-- else 는 생략 가능하다. 해당 조건이 없으면 NULL 처리

 

 

ex ) SELECT GENDER

               , DECODE(GENDER, 'M', '남자', 'F', '여자', '기타') GENDER_DIVISION

        FROM temp

-- GENDER컬럼값이 'M'이면 '남자' / 'F'면 '여자' / 그 외 '기타'로 GENDER_DIVISION에 반환

 

 

 

 

3-2. DECODE로 NULL 체크하기

 

 

 



출처: https://applejara.tistory.com/303 [애플자라]

출처 : gent.tistory.com/227 [젠트]