티스토리 뷰
1. employees 테이블로부터 JOB_ID 값을 기반으로 모든 사원의 등급을 표시하는 query를 작성하시오.
DECODE 함수와 Case 식 두 가지 방법으로 작성하시오.
[Decode]
SELECT job_id, decode (job_id, 'ST_CLERK', 'E',
'SA_REP', 'D',
'IT_PROG', 'C',
'ST_MAN', 'B',
'AD_PRES', 'A',
'0') GRADE
FROM employees;
[Case]
SELECT job_id, CASE job_id WHEN 'ST_CLERK' THEN 'E'
WHEN 'SA_REP' THEN 'D'
WHEN 'IT_PROG' THEN 'C'
WHEN 'ST_MAN' THEN 'B'
WHEN 'AD_PRES' THEN 'A'
ELSE '0' END GRADE
FROM employees;
2. employees 테이블로부터 사원의 총 수와 2002년, 2003년, 2004년 및 2005년에 채용된 사원의 수를 표 시하는 query를 작성합니다. 컬럼 제목을 년도로 지정하십시오.
SELECT COUNT(*) total,
SUM(DECODE(TO_CHAR(hire_date, 'YYYY'), 2002, 1, 0)) "2002",
SUM(DECODE(TO_CHAR(hire_date, 'YYYY'), 2003, 1, 0)) "2003",
SUM(DECODE(TO_CHAR(hire_date, 'YYYY'), 2004, 1, 0)) "2004",
SUM(DECODE(TO_CHAR(hire_date, 'YYYY'), 2005, 1, 0)) "2005"
FROM employees;
3. employees 테이블로부터 부서 20, 50, 80 및 90에 대해 job_id, department_id별 해당 직무에 대한 급여 및 해당 직무에 대한 총 급여를 표시하는 구문을 작성하시오
SELECT job_id "Job",
SUM(DECODE(department_id, 20, salary)) "Dept 20",
SUM(DECODE(department_id, 50, salary)) "Dept 50",
SUM(DECODE(department_id, 80, salary)) "Dept 80",
SUM(DECODE(department_id, 90, salary)) "Dept 90",
SUM(salary) "Total"
FROM employees
GROUP BY job_id;
'배운 것 기록 > DB' 카테고리의 다른 글
[Oracle] DCL - REVOKE (0) | 2022.08.25 |
---|---|
[Oracle] DCL - GRANT (0) | 2022.08.25 |
[Oracle] 조건부 표현식 - CASE (0) | 2022.08.19 |
[Oracle] Data Dictionary - object (0) | 2022.08.18 |
[MySQL] AWS RDS Spring / Workbench 연동 (0) | 2022.08.17 |
댓글