MsSQL UNION (ALL) 정의, 사용법
UNION/UNION ALL이란?
- 두 개의 SELECT문을 합치는 것을 말합니다.
- 두 개의 SELECT문을 합치는 것이기때문에 제약조건이 많습니다.
UNION/UNION ALL의 제약조건
- 상위SQL문과 하위SQL문의 컬럼 개수가 동일해야 합니다.
- 상위SQL문과 하위SQL문의 컬럼 위치가 동일한 컬럼들이 결합이 됩니다.
※ 컬럼 이름만 동일하다고 결합이 되지 않습니다.
- 컬럼명은 최상위 SQL문의 명칭을 따르게 됩니다.
UNION과 UNION ALL의 차이점
- UNION은 중복된 행을 제거하지만 UNION ALL은 중복된 행을 허용합니다.
- 중복된 행을 꼭 제거해야하는 경우가 아니라면 보통 UNION ALL을 사용합니다.
- 실제 환경에서는 UNION을 사용하느 경우는 극히 드뭅니다.
예제
--다음 SQL의 IN을 UNION ALL을 사용해서 해결하시오.
SELECT *
FROM Orders T1
WHERE T1.CustomerID IN ('ALFKI', 'TOMSP', 'VINET')
--다음과 같다.
SELECT *
FROM Orders T1
WHERE T1.CustomerID = 'ALFKI'
UNION ALL
SELECT *
FROM Orders T2
WHERE T2.CustomerID = 'TOMSP'
UNION ALL
SELECT *
FROM Orders T3
WHERE T3.CustomerID = 'VINET'