DATABASE

데이터베이스 함수 예제

강준석 2023. 1. 10. 15:18
728x90

--EMP 테이블에서 이름이 다섯글자인 사람들의 사원번호,이름 그리고
--사원번호 앞 두자리와 뒤 두자리는 *로 출력하고
--이름의 첫글자와 나머지 글자는 *로 출력

 

정답

더보기
SELECT EMPNO, ENAME,
    SUBSTR(EMPNO,1,2) || '**' AS 사원번호처리,
    RPAD (SUBSTR(ENAME,1,1), LENGTH(ENAME), '*') AS 이름처리 
    FROM EMP
WHERE LENGTH(ENAME)=5;

결과

--EMP 테이블에서 사원들의 평균 근무일수는 20일이다
--하루 근무시간 8시간으로 처리했을때
--일당과 시급을 계산해서 출력
--결과는 사원번호, 이름, 급여, 일당, 시급 순으로 출력하고
--일당은 소수 세째자리에서 버림
--시급은 소수 둘째자리에서 반올림

 

정답

더보기

SELECT EMPNO, ENAME, SAL,
    TRUNC(SAL/20,2) AS 일당,
    ROUND(SAL/20/8,1) AS 시급
    FROM EMP;

결과

 

--EMP테이블에서 입사일을 기준으로 3개월이 지난 첫째주 월요일에
--정직원이 된다. 사원들이 정직원이 되는날짜를 YYYY-MM-DD형식으로 출력
--단,추가수당이 없는 사원의 추가 수당은 'N/A'로 출력
--결과는 사원번호, 이름, 입사일, 정직원날짜,추가수당 순으로 출력

 

정답

더보기

SELECT EMPNO,ENAME,HIREDATE,
--입사기준 3개월 뒤 날짜 ->  첫째주 월요일이 몇월몇일 -> 형식바꾸기
   TO_CHAR(NEXT_DAY(ADD_MONTHS(HIREDATE,3),'월요일'),'YYYY-MM-DD') AS 정직원날짜,
   NVL(TO_CHAR(COMM),'N/A')
--COMM컬럼의 데이터 타입이 NUMBER이라 문자형으로 형변환(N/A는 문자이므로 다른 형태끼리는 계산 불가)
    FROM EMP;

결과

 

--EMP테이블에서 사원들에 직속상관 번호를 아래 조건에 맞게 변화해서 출력
--직속상관이 없으면 0000
--직속상관 번호 앞 두자리가 75-> 5555
--직속상관 번호 앞 두자리가 76-> 6666
--직속상관 번호 앞 두자리가 77-> 7777
--직속상관 번호 앞 두자리가 78-> 8888
--나머지는 해당 직속상관 사원번호 그대로 출력

 

정답

더보기

 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 변환번호
    FROM EMP;

 

결과

 

728x90