★ INTERSECT
intersect 구문은 두 개의 쿼리를 받고 결과를 모은 다음, 두 결과셋에 모두 존재하는
레코드만을 리턴한다. 첫번째 쿼리나 두번째 쿼리에서만 리턴된 행은 결과셋에 포함되지 않는다.
앞에서와 같은 쿼리에 INTERSECT 구문을 이용하면 LAST_NAME이 B로 시작하는 직원
레코드만이 리턴될 것임을 예상할 수 있다. 이것은 첫번째 쿼리나 두번째 쿼리에만 포함되는
행들이 모두 결과셋에서 제거되기 때문이다.
EX>
select employee_id, last_name
2 from employees
3 where last_name like 'A%'
4 or last_name like 'B%'
5 intersect
6 select employee_id, last_name
7 from employees
8 where last_name like 'B%'
9 or last_name like 'C%'
10 /
★ MINUS
MINUS 집합 연산자는 첫번째 쿼리에서만 리턴되며, 두번째 쿼리에서는 리턴되지 않는
레코드만을 리턴한다. 즉, 첫번째 쿼리에서 LAST_NAME이 A나 B로 시작하는 직원 레코드가
리턴되고, 두번째 쿼리에서 LAST_NAME이 B나 C로 시작하는 직원 레코드가 리턴된다면,
이 두 쿼리에 MINUS 연산자를 적용한 뒤에는 LAST_NAME이 A로 시작하는 직원 레코드를
얻게 된다.
EX>
select employee_id, last_name
2 from employees
3 where last_name like 'A%'
4 or last_name like 'B%'
5 minus
6 select employee_id, last_name
7 from employees
8 where last_name like 'B%'
9 or last_name like 'C%'
10 /
'Db > Oracle' 카테고리의 다른 글
oracle nowait 처리 (1) | 2010.04.09 |
---|---|
oracle start with, connect by (3) | 2010.04.09 |
oracle 긴 쿼리 오류시 처리용 sample (3) | 2010.04.09 |
oracle dual > connect by level 사용으로 수치값 출력 (3) | 2010.04.09 |
ORACLE PIVOT sample (5) | 2010.04.07 |