[ORACLE] EXISTS 사용방법

ORACLE 2018. 2. 8. 15:24

1. EXISTS 예시


1
2
3
4
5
SELECT A.*
FROM   TABLE_A AS A
WHERE EXISTS (SELECT B.*
              FROM   TABLE_B AS B
              WHERE A.NO = B.NO)
cs

* 설명 : A.NO = B.NO에 해당하는 모든 레코드를 반환한다.
해당 ROW가 존재하는지 먼저 파악한 후 조회를 하기 때문에 성능이 띄어나다.


2. NOT EXISTS 예시


1
2
3
4
5
SELECT A.*
FROM   TABLE_A AS A
WHERE NOT EXISTS ( SELECT B.*
                   FROM   TABLE_B AS B
                   WHERE A.NO = B.NO)
cs

* 설명 : A.NO = B.NO에 해당하지 않는 레코드를 반환한다.
위와 같이 해당 ROW가 존재하는지 먼저 파악한 후 조회를 하기 때문에 이 또한 성능이 띄어나다.