반응형
1. 사원 이름이 다섯 글자 이상이며 여섯 글자 미만인 사원 정보를 출력, MASKING_EMPNO 열에는 사원 번호 앞 두 자리 외 뒷자리를 *기호로 출력하고, MASKING_ENAME 열에는 사원 이름의 첫 글자만 보여 주고 나머지 글자 수만큼 *기호로 출력
SELECT
EMPNO,
SUBSTR(TO_CHAR(EMPNO),1,2) || '**' AS MASKING_EMPNO,
ENAME,
SUBSTR(ENAME, 1,1) || '****' AS MASKING_ENAME
FROM EMP
WHERE LENGTH(ENAME) = 5;
출력 결과
7369 73** SMITH S****
7499 74** ALLEN A****
7566 75** JONES J****
7698 76** BLAKE B****
7782 77** CLARK C****
7788 77** SCOTT S****
7876 78** ADAMS A****
7900 79** JAMES J****
2. 사원들의 월 평균 근무일 수는 21.5, 하루 근무 시간을 8시간으로 보았을 때 사원들의 하루 급여와 시급을 계산하여 출력, 단, 하루 급여는 소수점 세 번째 자리에서 버리고, 시급은 두 번째 소수점에서 반올림
SELECT
EMPNO,ENAME,SAL,
TRUNC(SAL / 21.5, 2) AS DAY_PAY,
ROUND(SAL / 21.5 / 8,1) AS TIME_PAY
FROM EMP;
출력 결과
EMPNO ENAME SAL DAY_PAY TIME_PAY
7369 SMITH 800 37.2 4.7
7499 ALLEN 1600 74.41 9.3
7521 WARD 1250 58.13 7.3
7566 JONES 2975 138.37 17.3
7654 MARTIN 1250 58.13 7.3
7698 BLAKE 2850 132.55 16.6
7782 CLARK 2450 113.95 14.2
7788 SCOTT 3000 139.53 17.4
7839 KING 5000 232.55 29.1
7844 TURNER 1500 69.76 8.7
7876 ADAMS 1100 51.16 6.4
7900 JAMES 950 44.18 5.5
7902 FORD 3000 139.53 17.4
7934 MILLER 1300 60.46 7.6
사원들은 입사일을 기준으로 3개월이 지난 후 첫 월요일에 정직원이 될 때, 사원들이 정직원이 되는 날짜를 YYYY-MM-DD 형식으로 출력, 단, 추가 수당이 없는 사원의 추가 수당은 N/A로 출력
SELECT EMPNO, ENAME, HIREDATE,
TO_CHAR(NEXT_DAY(ADD_MONTHS(HIREDATE, 3),'월'),'YYYY-DD-MM') AS R_JOB,
NVL2(COMM,TO_CHAR(COMM) ,'N/A')
FROM EMP;
출력 결과
EMPNO ENAME HIREDATE R_JOB COMM
7369 SMITH 80/12/17 1981-23-03 N/A
7499 ALLEN 81/02/20 1981-25-05 300
7521 WARD 81/02/22 1981-25-05 500
7566 JONES 81/04/02 1981-06-07 N/A
7654 MARTIN 81/09/28 1982-04-01 1400
7698 BLAKE 81/05/01 1981-03-08 N/A
7782 CLARK 81/06/09 1981-14-09 N/A
7788 SCOTT 87/04/19 1987-20-07 N/A
7839 KING 81/11/17 1982-22-02 N/A
7844 TURNER 81/09/08 1981-14-12 0
7876 ADAMS 87/05/23 1987-24-08 N/A
7900 JAMES 81/12/03 1982-08-03 N/A
7902 FORD 81/12/03 1982-08-03 N/A
7934 MILLER 82/01/23 1982-26-04 N/A
모든 사원을 대상으로 직속 상관의 사원 번호를 다음과 같은 조건을 기준으로 변환해서 CHG_MGR 열에 출력
SELECT EMPNO, ENAME, MGR,
CASE
WHEN MGR IS NULL THEN '0000'
WHEN SUBSTR(MGR,1,2) = '75' THEN '5555'
WHEN SUBSTR(MGR,1,2) = '76' THEN '6666'
WHEN SUBSTR(MGR,1,2) = '77' THEN '7777'
WHEN SUBSTR(MGR,1,2) = '78' THEN '8888'
ELSE TO_CHAR(MGR)
END AS CHG_MGR
FROM EMP;
출력 결과
7369 SMITH 7902 7902
7499 ALLEN 7698 6666
7521 WARD 7698 6666
7566 JONES 7839 8888
7654 MARTIN 7698 6666
7698 BLAKE 7839 8888
7782 CLARK 7839 8888
7788 SCOTT 7566 5555
7839 KING 0000
7844 TURNER 7698 6666
7876 ADAMS 7788 7777
7900 JAMES 7698 6666
7902 FORD 7566 5555
7934 MILLER 7782 7777
728x90
반응형
'Database' 카테고리의 다른 글
오라클로 배우는 데이터베이스 입문, 둘째 마당 08 - 1 ~ 4번 (0) | 2025.04.27 |
---|---|
오라클로 배우는 데이터베이스 입문, 둘째 마당 07 - 1 ~ 5번 연습 문제 (1) | 2025.04.27 |
오라클로 배우는 데이터베이스 입문, 둘째 마당 05 - 1 ~ 3번 (0) | 2025.04.27 |
오라클로 배우는 데이터베이스 입문, 둘째 마당 04 - 3번 (0) | 2025.04.27 |
4/25 - 트랜잭션, DDL, 객체 종류 (0) | 2025.04.27 |