DataBase/Oracle
Oracle - DECODE, CASE 함수
jaycheol
2024. 8. 12. 22:04
반응형
DECODE - 값에 따라 반환값을 결정 할 수 있다.
직급에 따라 인상된 급여액을 가져온다.
CLERK : 10% SALESMAN : 15% PRESIDENT : 200% MANAGER : 5% ANALYST : 20%
SELECT empno, ename, job,
decode(job, 'CLERK', sal*1.1,
'SALESMAN', sal*1.15,
'PRESIDENT', sal*3,
'MANAGER', sal*1.05,
'ANALYST', sal*1.2)
FROM emp;
이와같이 DECODE를 사용하여 해당 직무에 맞게 인상된 급여액을 가져 올 수 있다.
CASE - 조건에 따라 반환값을 결정 할 수 있다.
급여액별 등급을 가져온다.
1000미만 : c등급 1000이상 2000미만 : B등급 2000이상 : A등급
SELECT empno, ename,
CASE WHEN sal<1000 THEN 'C등급'
WHEN sal>=1000 AND sal<2000 THEN 'B등급'
WHEN sal>=2000 THEN 'A등급'
END
FROM emp;
이와같이 조건을 설정하여 조건에 맞는 값들을 가져올 수 있다.
직원들의 급여를 다음과 같이 인상한다.
1000이하 : 100% 1000초과 2000미만 : 50% 2000이상 : 200%
SELECT empno, ename,
CASE WHEN sal<=1000 THEN sal*2
WHEN sal>1000 AND sal<=2000 THEN sal*0.5
WHEN sal>=2000 THEN sal*3
END
FROM emp;
반응형