개발일기/Oracle
Do it! 오라클로 배우는 데이터베이스 입문 : 연습문제 6
민장미
2023. 5. 9. 23:43
오라클 학습용 계정 scott으로 접속~~
06 데이터 처리와 가공을 위한 오라클 함수
연습문제 page 174
문제는 시간이 없는 고로 사진으로 올린다...()
코드
4번문제에서 문자열로 바꾸는 함수써도 계속 0 이 뜨길래, 수동으로 '0000'으로 해줌..
포인트: case 문 => 반환 자료형들이 동일해야한다. (3,4번)
그리고 SUBSTR() 함수는 반환형이 문자인거 잊지말기
--PAGE 174
--1번문제
SELECT EMPNO, RPAD(SUBSTR(EMPNO, 1,2), 4 , '*') AS MASKING_EMPNO,
ENAME, RPAD(SUBSTR(ENAME,1,1), 5, '*' ) AS MASKING_ENAME
FROM EMP;
--2번문제
SELECT EMPNO, ENAME, SAL,
TRUNC( SAL/21.5 ,2)AS DAY_PAY,
ROUND( (SAL/21.5)/8 ,1) AS TIME_PAY
FROM EMP;
--급여 = 한달
--3번문제
SELECT EMPNO, ENAME, HIREDATE,
TO_CHAR(NEXT_DAY(ADD_MONTHS(HIREDATE, 3) , '월요일'),'YYYY-MM-DD') AS R_JOB,
CASE
WHEN COMM = 0 THEN TO_CHAR(COMM)
WHEN COMM > 0 THEN TO_CHAR(COMM)
WHEN COMM IS NULL THEN 'N/A'
END AS COMM
FROM EMP;
--4번문제
SELECT EMPNO, ENAME, MGR,
CASE
WHEN MGR IS NULL THEN '0000'
WHEN SUBSTR(MGR, 1,2) = TO_CHAR(75) THEN TO_CHAR(5555)
WHEN SUBSTR(MGR, 1,2) = TO_CHAR(76) THEN TO_CHAR(6666)
WHEN SUBSTR(MGR, 1,2) = TO_CHAR(77) THEN TO_CHAR(7777)
WHEN SUBSTR(MGR, 1,2) = TO_CHAR(78) THEN TO_CHAR(8888)
ELSE TO_CHAR(MGR)
END AS CHG_MGR
FROM EMP;
출력화면: