SELECT ename, sal, DECODE(TO_CHAR(hiredate, 'RRRR'), '1980', 'manager'
                                                                                    , '1981', 'general'
                                                                                    , 'clerk')
  FROM emp;                                                          
위와 같이 DECODE 첫번째 인자가 변수가 되고, 변수가 '1980'이면 'manager', '1981'이면 'general' 그 외에는 'clerk' 값이 리턴된다.

SELECT ename, sal, deptno,CASE deptno WHEN 10 THEN sal * 1.2
                                                             WHEN 20 THEN sal * 1.3
                                                             ELSE sal
                                         END "Revised Sal"
 FROM emp;
CASE 절을 위와 같이 사용 하면 CASE 뒤에 오는 컬럼이 변수가 되며 DECODE 와 유사하게 사용하는 방법이 있고,

CASE의 특징은 DECODE와 다르게 equal(=)이 아닌, 비교 값을 사용할 수 있다.
이때 컬럼의 위치에 주의해서 사용하기 바람.
SELECT ename, sal, CASE WHEN sal >= 4000 THEN 300
                                       WHEN sal >= 2000 THEN 200
                                       ELSE 100
                               END "Bonus"
  FROM emp;


테스트용 Mok 데이터 생성.
update t_deposit set
  prod_best_interest = (case when prod_dtl_div = '01' then '5.5'
                                        when prod_dtl_div = '02' then '4.7'
                                        else '3.3'
                                end)

EOB
Posted by 창신다이
BLOG main image
오랫동안 꿈을 그리는 사람은 마침내 그 꿈을 닮아 간다. -앙드레 말로- by 창신다이

공지사항

카테고리

분류 전체보기 (248)
공장이야기 (115)
Education (30)
회사이야기 (19)
일상 (73)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

Total :
Today : Yesterday :