본문 바로가기
ORACLE

IN과 EXISTS

by 리틀홍콩 2015. 3. 23.
728x90

Exists 와 IN 차이점

 - EXISTS : 단지 해당 row가 존재하는지만 확인하고, 더 이상 수행되지 않는다.
 - IN : 실제 존재하는 데이터들의 모든 값까지 확인한다.
 - 일반적인 경우에 EXISTS가 더 좋은 성능 나타내므로, 사용을 권장 한다.

 - NOT IN을 사용하면 조건에 맞는 데이터가 있다고 하더라도 NULL 이 존재하면 “no rows selected”라고 나오게 된다. 따라서 NVL를 이용한 NULL 처리가 꼭 필요하다.

 

Exists 사용방법

 - 매핑을 꼭 넣어주어야 한다.

 

  SELECT *

  FROM TABLE A

  WHERE EXISTS ( SELECT TEMP FROM TABLE B WHERE A.INDEX=B.INDEX )

 

뭐 이런식으로

 

 

출처 : http://javafactory.tistory.com/entry/%EC%98%A4%EB%9D%BC%ED%81%B4-EXISTS%ED%95%A8%EC%88%98-NOT-EXISTS-MINUS

댓글