- 서브쿼리(내부 쿼리)의 조건을 만족하는 현재 행(외부 쿼리의 행)이 존재하는지 점검
- 서브쿼리가 적어도 하나의 행을 반환
=> 참을 반환
=> 서브쿼리 탐색 종료
=> 외부 쿼리의 다른 행에 대해 탐색 시작
문제 : 부하직원이 1명 이상인 사원?
select * from emp e
where 1 <= (select count(*) from emp
where mgr = e.empno);
↓ ↓ ↓
select * from emp e
where exists (select 'x' from emp
where mgr = e.empno);
문제 : 사원이 한명도 없는 부서는?
select * from dept
where deptno not in (select deptno from emp
group by deptno);
↓ ↓ ↓
select * from dept d
where 0 = (select count(*) from emp
where deptno = d.deptno);
↓ ↓ ↓
select * from dept d
where not exists (select 'x' from emp
where deptno = d.deptno);
'Oracle > SQL Fundamentals II' 카테고리의 다른 글
14일차 # 6-20: Delete Case (Correlated DELETE) (0) | 2012.04.23 |
---|---|
14일차 # 6-17: Update Case (Correlated UPDATE) (0) | 2012.04.23 |
14일차 # 6-12: Select Case (0) | 2012.04.23 |
14일차 # 6-11: 상호관련 서브쿼리 (0) | 2012.04.23 |
14일차 # 6-10: Nested Subquery vs. Correlated Subquery (0) | 2012.04.23 |