MSSQL UNION, UNION ALL 차이점 및 사용법

MSSQL UNION, UNION ALL 차이점 및 사용법

MS SQL에서 UNION은 둘 이상의 SELECT 쿼리 결과를 하나의 결과 집합으로 만들어 주는 연산자입니다. 자주 사용되는 연산자입니다. 예시로 서로 다른 회사로부터 인사정보를 받아 UNION 연산자를 사용하여 통합된 인사정보로 저장하여 관리할 수 있습니다. 

그럼 간단한 예제를 통해서 UNION, UNION ALL 연산자에 대해서 알아보죠.

포스트 기준

– Microsoft SQL Server 2019

– SSMS 18.10

사용 예제

1. 구문(syntaxsql)

SELECT 쿼리문 1    
UNION [ ALL ]   
SELECT 쿼리문 2  
[ …n ]

1) 결과 집합에 중복 행을 포함할지 여부

▶ UNION ALL – 중복 항목을 포함합니다.
▶ UNION – 중복 항목을 제외합니다.

2) 쿼리의 결과 집합을 결합하기 위한 기본 규칙

▶ 열의 개수와 순서가 모든 쿼리에서 동일해야 합니다.
▶ 데이터 형식이 일치해야 됩니다.


2. UNION, UNION ALL – 예제 1)

-- 1) UNION 중복행 제거
SELECT P_ID, NAME, GRADE, GENDER
  FROM BS_DEMO_9_1
 UNION
SELECT P_ID, NAME, GRADE, GENDER
  FROM BS_DEMO_9_2
     
-- 2) UNION ALL 중복행 제거 안함
SELECT P_ID, NAME, GRADE, GENDER
  FROM BS_DEMO_9_1
 UNION ALL
SELECT P_ID, NAME, GRADE, GENDER
  FROM BS_DEMO_9_2
UNION, UNION ALL - 예제 1)


3. ORDER BY와 함께 UNION 사용 – 예제 2)

-- 1) ORDER BY 잘못 사용한 경우 (오류발생)
SELECT P_ID, NAME, GRADE, GENDER
  FROM BS_DEMO_9_1
 ORDER BY P_ID
 UNION
SELECT P_ID, NAME, GRADE, GENDER
  FROM BS_DEMO_9_2
     
-- 2) ORDER BY 올바른 사용
SELECT P_ID, NAME, GRADE, GENDER
  FROM BS_DEMO_9_1
 UNION
SELECT P_ID, NAME, GRADE, GENDER
  FROM BS_DEMO_9_2
 ORDER BY P_ID
ORDER BY와 함께 UNION 사용 - 예제 2)


4. UNION과 함께 SELECT INTO 사용 – 예제 3)

-- 1) UNION 결과를 별도 테이블에 저장한다.
SELECT P_ID, NAME, GRADE, GENDER 
  INTO BS_DEMO_9_3
  FROM BS_DEMO_9_1
 UNION
SELECT P_ID, NAME, GRADE, GENDER
  FROM BS_DEMO_9_2
 ORDER BY P_ID
     
-- 2) 데이터 확인
SELECT *
  FROM BS_DEMO_9_3
UNION과 함께 SELECT INTO 사용 - 예제 3)

함께 보면 좋은 게시글

위로 스크롤