- 전체
- Sample DB
- database modeling
- [표준 SQL] Standard SQL
- G-SQL
- 10-Min
- ORACLE
- MS SQLserver
- MySQL
- SQLite
- postgreSQL
- 데이터아키텍처전문가 - 국가공인자격
- 데이터 분석 전문가 [ADP]
- [국가공인] SQL 개발자/전문가
- NoSQL
- hadoop
- hadoop eco system
- big data (빅데이터)
- stat(통계) R 언어
- XML DB & XQuery
- spark
- DataBase Tool
- 데이터분석 & 데이터사이언스
- Engineer Quality Management
- [기계학습] machine learning
- 데이터 수집 및 전처리
- 국가기술자격 빅데이터분석기사
- 암호화폐 (비트코인, cryptocurrency, bitcoin)
MS SQLserver UNION으로 결과 집합 조합
2017.08.27 19:11
UNION으로 결과 집합 조합
UNION 연산자를 사용하여 둘 이상의 SELECT 문 결과를 단일 결과 집합으로 결합할 수 있습니다. UNION을 사용하여 결합된 결과 집합은 모두 같은 구조를 가져야 합니다. 즉, 열의 개수가 같아야 하고 해당 결과 집합 열은 호환되는 데이터 형식을 가져야 합니다. 자세한 내용은 Union 사용에 대한 지침을 참조하십시오.
다음과 같이 UNION을 지정합니다.
select_statement UNION [ALL] select_statement
예를 들어 Table1 및 Table2는 동일한 2열 구조를 가집니다.
|
TABLE1 |
|
|
TABLE2 |
|
|
COLUMNA |
COLUMNB |
|
COLUMNC |
COLUMND |
|
CHAR(4) |
INT |
|
CHAR(4) |
INT |
|
------- |
--- |
|
------- |
--- |
|
ABC |
1 |
|
GHI |
3 |
|
DEF |
2 |
|
JKL |
4 |
|
GHI |
3 |
|
MNO |
5 |
이 쿼리에서는 테이블 간에 UNION을 만듭니다.
SELECT * FROM Table1 UNION SELECT * FROM Table2
결과 집합은 다음과 같습니다.
ColumnA ColumnB ------- -------- abc 1 def 2 ghi 3 jkl 4 mno 5
UNION의 결과 집합 열 이름은 UNION의 첫 번째 SELECT 문의 결과 집합에 있는 열 이름과 동일합니다. 다른 SELECT 문의 결과 집합 열 이름은 무시됩니다.
기본적으로 UNION 연산자는 결과 집합에서 중복 행을 제거합니다. ALL을 사용하면 결과에 모든 행이 포함되고 중복 행은 제거되지 않습니다.
UNION 연산의 정확한 결과는 설치 중 선택한 데이터 정렬 및 ORDER BY 절에 따라 달라집니다. 다양한 데이터 정렬의 효과에 대한 자세한 내용은 데이터 정렬 작업을 참조하십시오.
Transact-SQL 문에 다수의 UNION 연산자가 나올 수 있습니다. 예를 들면 다음과 같습니다.
SELECT * FROM TableA UNION SELECT * FROM TableB UNION SELECT * FROM TableC UNION SELECT * FROM TableD
기본적으로 SQL Server 2005에서는 UNION 연산자가 있는 문을 왼쪽에서 오른쪽으로 계산합니다. 계산 순서를 지정하려면 괄호를 사용합니다. 예를 들어 다음 두 개의 문은 동일하지 않습니다.
/* First statement. */ SELECT * FROM TableA UNION ALL ( SELECT * FROM TableB UNION SELECT * FROM TableC ) GO /* Second statement. */ (SELECT * FROM TableA UNION ALL SELECT * FROM TableB ) UNION SELECT * FROM TableC) GO
첫 번째 문의 경우 TableB와 TableC 간의 UNION에서 중복 행이 제거됩니다. 이 집합과 TableA 간의 UNION에서 중복 행은 제거되지 않습니다. 두 번째 문의 경우 중복 행은 TableA와 TableB 간의 UNION에 포함되지만 TableC와의 후속 UNION에서 삭제됩니다. ALL은 이 식의 최종 결과에 영향을 주지 않습니다.
UNION이 사용되면 개별 SELECT 문에 ORDER BY 또는 COMPUTE 절을 사용할 수 없습니다. 마지막 SELECT 문 다음에는 ORDER BY 또는 COMPUTE 절을 한 번만 사용할 수 있습니다. 즉, 이러한 절은 결합된 최종 결과 집합에 적용됩니다. GROUP BY 및 HAVING은 개별 SELECT 문에서만 지정할 수 있습니다.
[출처] https://technet.microsoft.com/ko-kr/library/ms191141(v=sql.105).aspx
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 공지 | 오라클 기본 샘플 데이터베이스 | 졸리운_곰 | 2014.01.02 | 86133 |
| 공지 | [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE | 가을의 곰을... | 2013.02.10 | 78635 |
| 공지 | [G_SQL] Sample Database | 가을의 곰을... | 2012.05.20 | 95359 |

