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
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
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
함께 보면 좋은 게시글
- MSSQL DISTINCT 중복 행 제거하는 방법 (SELELCT 절)
- MSSQL TOP 원하는 행 수(개수) 만큼 지정하는 방법 (SELECT 절)
- MSSQL GROUP BY 절, HAVING 절 사용법
- MSSQL ORDER BY 절 데이터 정렬 방법(순서 지정) 오름차순, 내림차순
- MSSQL NULL 체크(조회) IS 연산자, 대체(치환) ISNULL 함수 (WHERE 절)
이 글이 도움이 되셨다면 공유 부탁 드립니다.


![[SSMS] 로컬 서버(PC)에 설치한 MSSQL 서버 연결하는 방법](https://bluesharehub.com/wp-content/uploads/2022/02/img_41.png)
