과제[2]

KITRI기술연수/ORACLE 2010. 5. 20. 15:41

--1. 사원 테이블에서 사원번호를 ‘7-369’ 형태로 출력하세요

SELECT SUBSTR(empno, 1, 1) || '-' || SUBSTR(empno, 2) AS 사원번호
      , ename
FROM emp;
 
 
--2. 사원 테이블에서 모든 사원의 정보를 출력하세요.
--    단, 부서정보가 없을 경우 0으로 표시하세요.

SELECT empno
      , ename
      , sal
      , NVL(deptno,0) AS DEPNO
FROM emp;
 
 
--3. 사원 테이블에서 모든 사원의 정보를 출력하세요.
--    단 부서번호가 10이면 ‘Accounting’, 20이면 ‘Research’,
--                 30이면 ‘Sales’, 40이면 ‘Operations’
--                 기타는 ‘Others’로 나타내세요

SELECT empno
      , ename
      , sal
      , deptno
      , CASE deptno WHEN 10 THEN 'Accounting'
                     WHEN 20 THEN 'Research'
                     WHEN 30 THEN 'Sales'
                     WHEN 40 THEN 'Operations'
                     ELSE 'Others'
        END AS DEPT_NAME
FROM emp;


--4. 사원 테이블에서 연도별 입사 인원을 구하세요.
--    단, 입사인원이 2명 이상인 해만 출력하세요.

SELECT EXTRACT(YEAR FROM hiredate)
      , COUNT(*)
FROM emp
GROUP BY EXTRACT(YEAR FROM hiredate)
HAVING COUNT(*) >= 2;



--5. 사원 테이블에서 부서번호가 30인 사원들의 근무기간을
--    1995년 12월 31일을 기준으로 구하세요.


SELECT empno
      , ename
      , sal
      , deptno
      , CEIL(MONTHS_BETWEEN('1995-12-31',hiredate)/12) || '년' ||
        CEIL(MOD(months_between('1995-12-31',hiredate), 12)) || '개월'
FROM emp
WHERE deptno = 30;

: