티스토리 뷰

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
댓글
최근에 올라온 글
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함