DECODE문은 두가지 유형으로 사용된다.


'조건', 'IF', TRUE, FALSE


'조건', 'IF1', TRUE, 'IF2', TRUE ,'IF3' TRUE



1
2
3
4
5
6
7
SELECT DECODE('조건2''조건1''결과1'
                                , '조건2', DECODE('조건2-1','조건2-2','결과2-1','결과2-2')
                                , '조건3''결과3')
   FROM DUAL
   
   -- 다음 DECODE문을 보면 IF1 TRUE1, IF2 TRUE2, IF3 TRUE3이 적용된것이고
   -- 조건2로 DECODE문을 보면 IF TRUE FALSE로 조건이 맞지 않아 FALSE로 접근한 것을 알 수 있다.
cs


실행결과


결과 2-2 가 나오는것을 확인할 수 있다.


DECODE문은 NVL과 NVL2의 문법형식을 합쳐놓은 것이라 생각하면 이해하기 쉽다.



1
2
3
SELECT NVL('컬럼값이NULL일때','TRUE')
         , NVL2('컬럼값이NULL일때','TRUE','FALSE')
  FROM DUAL
cs


CASE문과 비슷하지만 DECODE문은 더 복잡한 분기처리와 쿼리양을 줄일수 있다고 생각한다.  




+ Recent posts