Programming/MS SQL Server
[MS SQL SERVER] UNION, UNION ALL, INTERSECT, EXCEPT
hoojiv
2021. 10. 28. 15:19
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