Q_ 최대월급을 받는 사원의 이름과 월급을 출력하시오!
select ename, sal
from emp
where sal = (select max(sal)
from emp);
Q_JONES보다 더 많은 월급을 받는 사원들의 이름과 월급을 출력하시오!
select ename, sal
from emp
where sal > (select sal
from emp
where ename= 'JONES');
Q_ 'SCOTT'와 같은 월급을 받는 사원들의 이름과 월급을 출력하시오!
select ename, sal
from emp
where sal = (select sal
from emp
where ename = 'SCOTT');
Q_ ALLEN 보다 늦게 입사한 사원들의 이름과 입사일을 출력하시오!
select ename, hiredate
from emp
where hiredate > (select hiredate
from emp
where ename = 'ALLEN');
Q_ 사원 테이블에 최대월급을 받는 사원의 이름과 월급을 출력하시오!
// 사원 테이블에서 최대월급이 얼만데!가 먼저 궁금해야함
select ename, sal
from emp
where sal = (select max(sal)
from emp);
Q_ ALLEN과 같은 부서번호에서 근무하는 사원들의 이름과 부서번호를 출력하시오!
select ename, deptno
from emp
where deptno = (select deptno
from emp
where ename = 'ALLEN');
Q_ SCOTT과 같은 직업을 갖는 사원들의 이름과 직업을 출력하는데 SCOTT은 제외하고 출력하시오!
// SCOTT은 제외하고 ~~~ 뭐지?
select ename, job
from emp
where job in (select job
from emp
where ename = 'SCOTT')
and ename != 'SCOTT';
Q_ KING에게 보고하는 사원들의 이름을 출력하시오! (KING의 직속부하 사원들을 출력하시오!)
// mgr이 KING의 mgr인 사원을 출력하시오
select ename
from emp
where mgr = (select empno
from emp
where ename = 'KING');
Q_ DALLAS에 있는 부서번호에서 근무하는 사원들의 이름과 월급을 출력하시오! (조인 쓰지 말고 서브쿼리로만)
// DALLAS에 있는 부서번호가 뭔데~~~~
select ename, sal
from emp
where deptno = (select deptno
from dept
where loc = 'DALLAS');
Q_ 직업이 SALESMAN인 사원들과 월급이 같은 사원들의 이름과 월급을 출력하시오!
// 직업이 SALESMAN인 사원들의 월급이 각각 얼만데~~~
// 서브쿼리의 출력값이 다중행일 경우 '=' 대신 'IN' 연산자를 사용한다
select ename, sal
from emp
where sal in(select sal
from emp
where job = 'SALESMAN');
Q_ 직업이 SALESMAN인 사원들과 월급이 같지 않은 사원들의 이름과 월급을 출력하시오!
select ename, sal
from emp
where sal not in(select sal
from emp
where job = 'SALESMAN');
Q_ 관리자인 사원들의 이름을 출력하시오! (자기 밑에 직속 부하 사원이 한명이라고 있는 사원)
select ename
from emp
where empno in (select mgr
from emp);
Q_ 관리자가 아닌 사원들의 이름을 출력하시오 ! (즉 자기 밑에 직속부하가 한명도 없는 사원들을 출력하시오)
select ename
from emp
where empno not in (select nvl(mgr,0)
from emp);
Q_ 직업이 SALESMAN 인 사원들중에서의 최대월급보다 더 많은 월급을 받는 사원들의 이름과 월급을 출력하시오 !
select ename, sal
from emp
where sal > (select max(sal)
from emp
where job = 'SALESMAN');
Q_ 직업이 SALESMAN 인 사원들중에서 가장 작은 월급을 받는 사원보다 더 큰 월급을 받는 사원들의 이름과 월급을 출력하시오 !
select ename, sal
from emp
where sal > (select min(sal)
from emp
where job = 'SALESMAN');
Q_ 30번 부서번호인 사원들 중에서 가장 늦게 입사한 사원보다 더 늦게 입사한 사원들의 이름과 입사일을 출력하시오 !
( 전체 사원을 대상으로 수행)
select ename, hiredate
from emp
where hiredate > all (select hiredate
from emp
where deptno = 30);
Q_ 부서 테이블에서 부서번호와 부서위치를 출력하는데 사원 테이블에 존재하는 부서번호에 대한 것만 출력하시오 !
select deptno, loc
from dept
where deptno in (select deptno
from emp);
Q_ 부서테이블에서 부서번호와 부서위치를 출력하는데 사원 테이블에 존재하지 않는 것을 출력하시오 !
select deptno, loc
from dept d
where not exists (select e.deptno
from emp e
where e.deptno = d.deptno);
'SQL' 카테고리의 다른 글
[SQL] 복습문제 - Join (0) | 2021.07.11 |
---|---|
[SQL][TIL] GROUP BY, ROLLUP, CUBE (0) | 2021.07.09 |
[SQL][TIL] 집합 연산자 (0) | 2021.07.09 |
[SQL][TIL] ADSQL문제풀이 (0) | 2021.07.09 |
[SQL][TIL] exists 연산자 (where절의 in 연산자 대신 사용) (0) | 2021.07.08 |