1. 사원의 번호, 이름, 급여, 부서 번호를 출력하시오.
select empno, ename, sal, deptno
from emp;
2. 입사일자가 1980년 12월 17일 이후에 입사한 사원의 모든 정보를 출력하시오.
select *
from emp
where hiredate = '02/08/17';
추가로 연도는 '020817' 로 입력하여도 결과값이 출력되는 걸 확인.
3. 급여가 800미만인 사원의 이름, 급여, 부서 번호를 출력하시오.
select ename, sal, deptno
from emp
where sal < 800;
4. 문제생략 case문, decode, as 포맷
5. 위의 결과에서 직원이면서 BUSEO_GB가 기타부서로 소속된 사람의 모든 사원번호, 부서번호, BUSEO_GB를 출력
6. 입사일자가 1981년 12월 09일보다 먼저 입사한 사람들의 모든 정보를 출력하여라.
select *
from emp
where hiredate <= '1981/12/09';
7. 입사번호가 7698보다 적거나 같은 사람들의 입사번호와 이름을 출력
8. 입사일자가 1981년 04월 02일보다 늦고 1982년 12월 09일보다 빠른 사원의 이름, 월급, 부서 번호를 출력
select ename, sal, deptno, hiredate
from emp
where hiredate >= '1981/04/02'
and hiredate <= '1982/12/09';
9. 급여가 1,600보다 크고 3,000보다 작은 사람의 이름, 직무, 급여를 출력하여라.
select ename, job, sal
from emp
where sal >= 1600
and sal <= 3000;
10. 입사년도가 1981년 이외에 입사한 사람의 모든 정보를 출력하여라.
11. 입사년월이 1981년 02월에 입사한 사람의 모든 정보를 출력
select *
from emp
where hiredate like '81/02%';
12. 부서번호의 20, 30번을 제외한 모든 사람의 이름, 사원번호, 부서번호를 출력
13. 문제 생략
14. 위의 결과에서 1등급만 출력
select empno, sal,
case when sal >= 100 and sal <= 2000 then '3등급'
when sal >= 2001 and sal <= 3000 then '2등급'
else '1등급' end as "DEGREE"
from emp
where sal > 3000
order by DEGREE, sal;
15. 이름이 S로 시작하는 사원의 사원번호, 이름, 입사일자, 부서 번호를 출력
16. 이름의 세번째 글자가 'A'이거나 끝자리가 'S'로 끝나는 사원의 이름, 사원번호를 출력
select ename, empno
from emp
where ename like '__A'
or ename like '%S';
17. 이름 중 S가 포함된 사원의 모든 정보를 출력
18. 문제 생략
19. 커미션(COMM)을 받는 사원의 모든 정보를 커미션이 적은 순으로 출력하여라
방법 1)
select *
from emp
where comm > 0
order by comm desc;
방법 2)
20. 첫 번째 문자에 상관없이 두 번째 문자가 A인 사람의 사원번호, 이름을 출력하여라
select empno, ename
from emp
where ename like '_A%';
21. 20, 30번 부서중에 직업이 MANAGER인 사람의 정보를 출력하여라
select *
from emp
where deptno in (20,30)
and job = 'MANAGER';
22. 문제 생략
select empno, ename, deptno,
floor(sal + nvl(comm,0)) as Now_Amt,
case when floor(sal + nvl(comm,0)) >= 3000 then floor((sal + nvl(comm,0)) / 10)
else 0 end as KongJe_Amt,
case when floor(sal + nvl(comm, 0)) >= 3000 then floor(sal + nvl(comm, 0)) - floor((sal + nvl(comm,0)) / 10)
else floor(sal + nvl(comm, 0)) end as JiGeup_Amt,
case when floor(sal + nvl(comm, 0)) >= 3000 then '공제대상'
else '미대상' end as KongJae_Yn
from emp
order by deptno, kongjae_yn asc;
'DB' 카테고리의 다른 글
[DB] 기타 (0) | 2021.02.08 |
---|---|
[DB] WITH 절 사용 예시 (0) | 2021.02.08 |
[오라클] JOIN / 서브쿼리 (0) | 2021.02.06 |
[오라클] GROUP BY절 연습 (0) | 2021.02.03 |
[오라클DB] DUAL테이블 및 오라클 함수 (0) | 2021.02.02 |