출처1 : http://energ.tistory.com/187
출처2 : http://msfury.tistory.com/59
EXISTS :
SELECT 데이터1,
데이터2
FROM 테이블 A
WHERE 조건식1
AND EXISTS (
SELECT 'X'
FROM 테이블 B
WHERE 조건식1
AND A.컬럼 = B.컬럼
)
IN :
SELECT 데이터1,
데이터2
FROM 테이블 A
WHERE 조건식1
AND A.컬럼 IN (
SELECT B.컬럼
FROM 테이블 B
WHERE 조건식1
)
---------------------------------------------------------------------------------
NOT EXIST 와 NOT IN 의 차이
NOT IN 은 ROW가 존재해도 JOIN 걸린 값이 NULL 일 경우 FALSE 를 리턴함에 주의
select idx, na
from ( select 1 idx, 'kim' na from dual
union
select 2 idx, 'lee' na from dual
union
select 3 idx, 'park'na from dual
) o
where not exists ( select 1
from ( select 2 idx from dual
union
select 3 idx from dual
) i
where i.idx = o.idx
)
select idx, na
from ( select 1 idx, 'kim' na from dual
union
select 2 idx, 'lee' na from dual
union
select 3 idx, 'park'na from dual
) o
where idx NOT IN ( select idx
from ( select nvl(null,0) idx from dual
union
select 2 idx from dual
union
select 3 idx from dual
)
)
'IT > DB' 카테고리의 다른 글
Varchar2(8) VS Date 어느 것이 우월한가? (0) | 2012.11.09 |
---|---|
오라클 버전 확인 (0) | 2012.02.08 |