--테스트 DB/TABLE 준비
use master
create database test20131114
go
use test20131114
create table A
(
id int
)
create table B
(
id int
)
insert into A values (1)
insert into A values (2)
insert into A values (3)
insert into A values (4)
insert into A values (5)
insert into B values (1)
insert into B values (2)
insert into B values (3)
/*
위와 같이 A 테이블(집합 A)에는 1,2,3,4,5가 있고,
B 테이블(집합 B)에는 1,2,3이 있다.
집합 A에서 집합 B를 뺀 차집합은 4,5가 된다.
수학 기호로는 A-B={4,5} 이다.
*/
--가장 간결한 방법
select id
from A
except
select id
from B
/*
EXCEPT 및 INTERSECT
두 쿼리의 결과를 비교하여 고유한 값을 반환합니다.
EXCEPT는 오른쪽 쿼리에 없는 고유한 값을 왼쪽 쿼리에서 반환합니다.
INTERSECT는 INTERSECT 피연산자의 왼쪽과 오른쪽에 있는 두 쿼리에 의해 반환된 고유한 값을 반환합니다.
참고 : http://msdn.microsoft.com/ko-kr/library/ms188055.aspx
*/
--NOT IN을 이용한 방법
select id
from A
where id not in (
select id
from B
)
/*
부연참고 : http://smartweb.tistory.com/4
*/
--IS NULL을 이용한 방법
select A.id
from (
select id
from A
) A
left join (
select id
from B
) B on B.id=A.id
where B.id is null
'MSSQL' 카테고리의 다른 글
MSSQL 곱셈-집계 함수 곱셈, SUM() 곱셈함수, row 곱셈, 특정필드 값 곱셈 (2) | 2014.06.12 |
---|---|
MSSQL SELECT 쿼리 LEFT JOIN 속도 개선 - left merge join (0) | 2013.11.14 |
MSSQL money 타입 소수점부 값 조회 (1) | 2013.08.30 |