반응형

[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