티스토리 뷰

728x90
SELECT * FROM UserTblA
EXCEPT
SELECT * FROM UserTblB

UNION, UNION ALL, INTERSECT, EXCEPT 4가지 연산은 집합으로 이해하면 편하다.

아래처럼 2개의 테이블이 있고 각각의 값들이 있다. 

  • UserTblA - 1, 2, 3
  • UserTblB - 1, 2, 4

UNION의 경우에는 두 테이블의 데이터를 모두 합한 후 중복을 제거한 유일한 값을 결과로 출력한다.

두 테이블의 데이터를 모두 합하면 [1, 2, 3, 1, 2, 4] 이고 중복을 제거한 [1, 2, 3, 4] 가 출력된다.

SELECT * FROM UserTblA
UNION 
SELECT * FROM UserTblB

UNON ALL의 경우에는 두 테이블의 데이터를 모두 합하는데 중복을 제거하지 않고 결과를 출력한다.

그러므로 아래 쿼리의 결과는 [1, 2, 3, 4] 이다.

SELECT * FROM UserTblA
UNION ALL
SELECT * FROM UserTblB

INTERSECT의 경우에는 두 테이블의 데이터 중 교집합인 값을 결과로 출력한다. 

그러므로 아래 쿼리의 결과는 [1, 2] 이다.

SELECT * FROM UserTblA
INTERSECT
SELECT * FROM UserTblB

마지막으로 EXCEPT는 두 테이블의 데이터 중 차집합인 값을 결과로 출력한다.

즉, 두 테이블 간의 차집합은 [1, 2, 3] - [1, 2, 4] = [3]이다.

728x90
LIST

'Programming > MS SQL Server' 카테고리의 다른 글

[MS SQL SERVER] MERGE  (0) 2021.10.28
[MS SQL SERVER] INSERT - OUTPUT 구문  (0) 2021.10.28
[MS SQL SERVER] SUBQUERY - IN, ALL, ANY  (0) 2021.10.28
[MS SQL SERVER] ROLLUP, CUBE  (0) 2021.10.28
[MS SQL SERVER] GROUPING SETS, GROUPING  (0) 2021.10.28
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함