개발일기/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;

 

출력화면: