★ 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