본문 바로가기

IT Study/Database-Oracle

특수 Query 예제(scott)

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
-- 33) 각 사원의 이름을 표시하고 근무 달 수(입사일로부터 현재까지의 달수)를 계산하여
-- 열 레이블을 MONTHS_WORKED로 지정하시오. 결과는 정수로 반올림하여 표시하고 근무달 수를
-- 기준으로 오름차순으로 정렬하시오.(MONTHS_BETWEEN 참고)
SELECT ENAME,ROUND(MONTHS_BETWEEN(SYSDATE,HIREDATE)) AS MONTHS_WORKED
FROM EMP
ORDER BY MONTHS_WORKED ASC;
 
-- 34)emp테이블에서 이름, 업무, 근무연차를 출력하시오.
SELECT ENAME,JOB,TRUNC(MONTHS_BETWEEN(SYSDATE,HIREDATE)/12) AS YERRS_WORKED
FROM EMP;
-- 35)emp테이블에서 사원이름, 월급, 월급과 커미션을 더한 값을 컬럼명 실급여라고 해서 출력.
-- 단, NULL값은 나타나지 않게 작성하시오.
SELECT ENAME, SAL, SAL+NVL(COMM,0) AS "실급여"
FROM EMP;
 
-- 36)월급과 커미션을 합친 금액이 2,000이상인 급여를 받는 사원의 이름,업무,월급,커미션,고용날짜
-- 를 출력하시오. 단, 고용날짜는 1980-12-17 형태로 출력하시오.
SELECT ENAME,JOB,SAL,COMM,TO_CHAR(HIREDATE,'YYYY-MM-DD') AS "고용날짜",SAL+NVL(COMM,0) AS "실급여"
FROM EMP
WHERE SAL+NVL(COMM,0>= 2000;
 
-- 37)DECODE 또는 CASE WHEN THEN 함수를 사용하여 다음 데이터에 따라 JOB열의 값을 기준으로
-- 모든 사원의 등급을 표시하시오.
/*
업무        등급
PRESIDENT   A
ANALYST     B
MANAGER     C
SALESMAN    D
CLERK       E
기타         0
*/
SELECT ENAME,JOB,
    CASE JOB
        WHEN 'PRESIDENT' THEN 'A'
        WHEN 'ANALYST' THEN 'B'
        WHEN 'MANAGER' THEN 'C'
        WHEN 'SALESMAN' THEN 'D'
        WHEN 'CLERK' THEN 'E'
        ELSE '0'
    END AS "등급"
    FROM EMP;
 
SELECT ENAME,JOB,
    DECODE(JOB,
        'PRESIDENT''A',
        'ANALYST''B',
        'MANAGER''C',
        'SALESMAN''D',
        'CLERK''E',
        '0') AS "등급"
    FROM EMP;
 
-- 추가문제< hr >
--먼저 입사한 사원순으로 작성해서 11 ~ 20번째 사원의 정보를 출력하시오
SELECT *
FROM (SELECT ROWNUM AS RNUM,EMPLOYEE_ID,LAST_NAME,SALARY,JOB_ID,MANAGER_ID,HIRE_DATE
      FROM (SELECT EMPLOYEE_ID,LAST_NAME,SALARY,JOB_ID,MANAGER_ID,HIRE_DATE
            FROM EMPLOYEES
            ORDER BY HIRE_DATE) EMP)
WHERE RNUM BETWEEN 11 AND 20;
 
 
cs


'IT Study > Database-Oracle' 카테고리의 다른 글

제약 조건 정리  (0) 2018.06.27
Table  (0) 2018.06.27
특수 Query  (0) 2018.06.25
SubQuery 예제(scott)  (0) 2018.06.22
SubQuery 예제(hr)  (0) 2018.06.22