BLOG main image
분류 전체보기 (65)
JSP (6)
Android (1)
ASP.NET (0)
MSSQL (4)
PHP (18)
ASP (11)
오픈 API (1)
HTML (2)
JavaScript (0)
Windows Programming (8)
컴퓨터교양 (14)
객체 지향 (0)
리뷰 및 생각 (0)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
'MSSQL 차집합'에 해당되는 글 1건
2013. 11. 14. 09:56

--테스트 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

prev"" #1 next