과제[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;