Building value

Oracle SQL 기본 문법[DECODE] 본문

RDBMS/Oracle DB

Oracle SQL 기본 문법[DECODE]

developer_Michael 2023. 3. 15. 18:07
반응형

DECODE는 오라클의 내장 함수 중 하나로, 

조건에 따라 값을 변환하는 역할을 합니다. 

DECODE 함수는 첫 번째 매개변수로 비교 대상 값을 지정하고, 

두 번째 매개변수부터는 조건식과 결과값을 번갈아 나열해서 사용합니다.

 

SELECT JOB,
SUM(DECODE(DEPTNO, 10, SAL)) "DEPTNO 10",
SUM(DECODE(DEPTNO, 20, SAL)) "DEPTNO 20",
SUM(DECODE(DEPTNO, 30, SAL)) "DEPTNO 30",
SUM(SAL) TOTAL
FROM EMP
GROUP BY JOB
ORDER BY JOB;

위의 쿼리는 EMP 테이블에서 직무(JOB)별로 10, 20, 30 부서에서의 급여(SAL) 총합과 

 

전체 급여 총합(TOTAL)을 계산하는 쿼리입니다.

 

DECODE 함수를 사용하여 부서별 급여를 계산하고, 

GROUP BY 절을 사용하여 직무별로 그룹핑하였습니다. 

마지막으로 ORDER BY 절을 사용하여 직무 이름을 기준으로 정렬합니다.

 

출력 결과

 

SELECT DEPTNO,
SUM(DECODE(JOB,'CLERK',SAL)) CLERK,
SUM(DECODE(JOB,'MANAGER',SAL)) MANAGER,
SUM(DECODE(JOB,'PRESIDENT',SAL)) PRESIDENT,
SUM(DECODE(JOB,'ANALYST',SAL)) ANALYST,
SUM(DECODE(JOB,'SALESMAN',SAL)) SALESMAN
FROM EMP
GROUP BY DEPTNO
ORDER BY DEPTNO;

위 쿼리는 DEPT 테이블의 부서별로 각 직무(JOB)의 급여(SAL) 총합을 계산하는 쿼리입니다.

DECODE 함수를 사용하여 각 직무별 급여 총합을 계산하고, GROUP BY 절을 사용하여 부서별로 그룹핑하였습니다. 

 

마지막으로 ORDER BY 절을 사용하여 부서번호를 기준으로 정렬합니다.

이 쿼리는 각 부서의 직원들이 어떤 직무를 수행하고 있는지, 

 

그리고 그 직무별로 어떤 수준의 급여를 받고 있는지를 파악하는 데에 유용합니다.

출력 결과

 

반응형