SELECT ename, sal, DECODE(TO_CHAR(hiredate, 'RRRR'), '1980', 'manager'위와 같이 DECODE 첫번째 인자가 변수가 되고, 변수가 '1980'이면 'manager', '1981'이면 'general' 그 외에는 'clerk' 값이 리턴된다.
, '1981', 'general'
, 'clerk')
FROM emp;
SELECT ename, sal, deptno,CASE deptno WHEN 10 THEN sal * 1.2CASE 절을 위와 같이 사용 하면 CASE 뒤에 오는 컬럼이 변수가 되며 DECODE 와 유사하게 사용하는 방법이 있고,
WHEN 20 THEN sal * 1.3
ELSE sal
END "Revised Sal"
FROM emp;
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