[Oracle SQL] DECODE, CASE 예제
I 부서별 차등 보너스 계산 SQL 작성 : DECODE, CASE
▶ 10 번 부서 급여의 0.3%, 20번 부서 급여의 20%, 30번 부서 급여의 10%, 나머지 모든 부서 1%
▶ 부서번호, 이름, 직무, 급여, 보너스
▶ 부서별, 최고 보너스 순으로 정렬
▶ 소수점 절삭
1) DECODE
SELECT DEPTNO,ENAME,JOB,SAL,TRUNC(DECODE(DEPTNO,10,SAL*0.003,20,SAL*0.2,30,SAL*0.1,SAL*0.01),0) AS BONUS
FROM EMP
ORDER BY DEPTNO, BONUS DESC;
2) CASE
SELECT DEPTNO,ENAME,JOB,SAL,CASE WHEN DEPTNO = 10 THEN TRUNC(SAL*0.003,0)
WHEN DEPTNO = 20 THEN TRUNC(SAL*0.2,0)
WHEN DEPTNO = 30 THEN TRUNC(SAL*0.1,0)
ELSE TRUNC(SAL*0.01,0)
END AS BONUS
FROM EMP
ORDER BY DEPTNO, BONUS DESC;
'ORACLE SQL > ORACLE SQL 기초' 카테고리의 다른 글
[Oracle SQL] 'YY'방식 v. 'RR'방식 (0) | 2019.01.01 |
---|---|
[Oracle SQL] ROWNUM 예제 (0) | 2018.12.31 |
[Oracle SQL] SYS v. SYSTEM 계정 (0) | 2018.12.31 |
[Oracle SQL] 현재시간 (0) | 2018.12.26 |
[Oracle SQL] CSV 파일 추출 (0) | 2018.12.26 |