본문 바로가기

프로그래밍/MSSQL

[MSSQL] 집합 연산자 UNION (합집합), INTERSECT (교집합), EXCEPT (차집합)

반응형







집합 연산자 UNION, INTERSECT, EXCEPT에 대해 알아보자




  UNION / UNION ALL


합집합 (A∪B)


SELECT * FROM 테이블A
UNION
SELECT * FROM 테이블B


테이블A와 테이블B의 모든 데이를 출력한다.

조회하려는 컬럼의 수는 일치해야 한다.


UNION은 중복된 행을 하나의 행으로 출력하고, UNION ALL은 중복된 행을 그대로 출력한다.

즉, 중복을 제거하며 결과를 가져오는 UNION보다는 UNION ALL의 속도가 더 빠르다.





  INTERSECT


교집합 (A∩B)


SELECT * FROM 테이블A
INTERSECT
SELECT * FROM 테이블B


테이블A와 테이블B의 데이터 중 일치하는 데이터만 출력한다.





  EXCEPT


차집합 (A-B)


SELECT * FROM 테이블A
EXCEPT
SELECT * FROM 테이블B


테이블A에 있는 데이터에서 테이블B와 중복을 제외한 데이터를 출력한다.






반응형