[MSSQL]SQL Server의Minus、Except

MS SQL | 2011. 2. 11. 19:18
Posted by Haronoid
1. Oracle의MINUS연산자가 SQL Server에는 존재하지 않는다.
대신이라고 하긴 조금 틀리지만EXCEPT라는 연산자가 있어, 약간은 비슷한 처리를 할 수 있다.
EXCEPT : 왼쪽의 쿼리에 있고, 오른쪽 쿼리에 없는 각 값을 돌려준다.
insert into TBL1 values ('1');
insert into TBL1 values ('2');
insert into TBL1 values ('3');
insert into TBL2 values ('1');
insert into TBL2 values ('3');

select * from TBL1
EXCEPT
select * from TBL2

>결과
2
  • 위의 예로는 MINUS와 같은 결과가 된다.
2. 왼쪽 쿼리의 결과에 오른쪽 쿼리가 복수의 일치하는 값을 갖고 있을경우엔 MINUS와는 다른 결과가 되고 만다.
일치하는 모든 값을 제거해 버리기 때문이다.
insert into TBL1 values ('1');
insert into TBL1 values ('1');
insert into TBL1 values ('2');
insert into TBL2 values ('1');
insert into TBL2 values ('3');

select * from TBL1
EXCEPT
select * from TBL2

>결과
2
  • TBL1에 복수 존재하는 "1"의 값은 모두 제거된 뒤의 결과가 된다.
 
블로그 이미지

Haronoid

기본적으로 프로그래밍 관련 메모를 중점으로 합니다. 자세한 설명이 결여되어 있을 가능성이 있습니다.

카테고리

분류 전체보기 (29)
프로그래밍 기본 (1)
VB&VBA (1)
JAVA (0)
ORACLE (10)
WidnowsCommandLine (2)
Excel (1)
Windows (1)
.NET (6)
MS SQL (6)