sub_title
 MSSQL
제   목 MSSQL - UNION ALL을 이용했을때 테이블명 가져오기
작성자 다자래 등록일 2008-08-21 20:24:08 조회수 40,225

[MSSQL - UNION ALL을 이용했을때 테이블명 가져오기]

UNION [ALL] 연산자는 두개 이상의 쿼리의 결과값을 하나로 합쳐서 반환해주는 아주 유용한 연산자입니다.
간혹 내가 몇백줄짜리 몇천줄짜리 쿼리를 만든적 있다고 말하는 분이 계시면 십중팔구는 UNION [ALL] 을 이용한 보고서용 쿼리를 만들었다고 봐도 무방합니다.

- UNION [ALL] 연산자

UNION ALL 과 UNION 연산자에 대한 간단한 차이는 쿼리의 결과 값중 중복을 허용하느냐, 중복을 허용하지 않느냐의
차이입니다. 다음의 간단한 실 예를 보시기 바랍니다.

아래와 같이 testA, testB 두개의 테이블이 있고, 쿼리 분석기를 통해서 column1 컬럼의 값을 출력해 보았습니다.



testA 테이블에 column1 값은 ㄱ, ㄴ, ㄷ, ㄹ, ㅁ, ㅂ, ㅅ 이 있고, testB 테이블의 column1 에는 ㄱ, ㄴ, ㄷ, ㄹ, ㅁ
이 있습니다. 위가 testA 테이블의 출력 결과이고 아래가 testB 테이블의 출력 결과인 것은 누구나 아실것으로 사료됩니다.

이제 이 두개의 쿼리 결과 값을 UNON 과 UNION ALL 로 묶어 보겠습니다.



위에 UNION 으로 묶었을 때와 아래의 UNION ALL 로 묶은 결과 값의 갯수가 다릅니다. 자세히 살펴 보시면 UNION으로 묶었을때는 중복이 제거 되었고, UNION ALL 은 두 테이블의 값들을 중복제거 없이 그대로 출력하고 있슴을 알수 있을 것입
니다.

- UNION ALL을 이용했을 때 테이블명 가져오기

정확히 말해서 UNION ALL 을 이용했을 때 테이블 명을 가져 온다는 것은 거짓입니다. UNION ALL 이 제대로 완성된 쿼리를 UNION ALL 이란 연산자를 이용해서 묶는 것을 이용해 해당되는 쿼리에 테이블 명을 미리 적어 놓는 것입니다.
아래의 쿼리문을 살펴보시기 바랍니다.

--UNION ALL
SELECT
column1, 'testA' AS tblName FROM testA
UNION ALL
SELECT column1, 'testB' AS tblName FROM testB

위의 쿼리문처럼 해당되는 SELECT 문에 'testA', 'testB' 는 테이블 명을 미리 적어두면 실행 결과는 아래와 같이
해당 레코드가 어느 테이블에서 가져온 레코드인지 확인이 가능하게 됩니다. 주로 여러개의 테이블을 검색해서 가져온
데이타가 어느 테이블에 속한 데이타인지 확인하기 위해서 사용합니다.

 

작성자: 다자래(mfcchang@naver.com)
웹제작 토탈 커뮤니티 http://www.webmadang.net
 
0
    
 
0
        list
 
※ 짧은 댓글일수록 예의를 갖추어 작성해 주시기 바랍니다.
line
reply cancel
 
번호 제목 글쓴이 추천 조회 날짜
34  인덱스를 위한 교재 추천 부탁 드립니다.   member 난모르겠 0 / 0 23404 2020-06-28
33  테이블 부하에 대해서...?   member 헨씀히포 0 / 0 23224 2019-05-24
32  MSSQL - 문자함수(len함수와 datalength 함수) 이미지   admin 웹마당넷 3 / 0 41081 2017-09-10
31  MSSQL - 백업 데이터를 다른 데이터베이스로 복원하기 이미지   admin 웹마당넷 6 / 2 29857 2015-07-05
30  MSSQL - SELECT 결과를 테이블로 만들기 이미지   admin 웹마당넷 1 / 0 27709 2015-06-26
29  기본 데이타 베이스 저장소 위치 바꾸기   member 아침마당 1 / 1 26433 2010-11-04
28  SQL Server 2008 복원시 트랜잭션 로그 백업   member 아침마당 1 / 0 26535 2010-09-25
27  SQL 인젝션 공격을 당했을 경우 인젝션 스크립트 지우는 저장 프로시저   member 아침마당 1 / 0 26076 2010-09-14
26  SQL Server 트랜잭션 로그 파일 줄이는 방법   member 아침마당 0 / 1 32450 2010-09-14
25  [MSSQL] SQL Server 2008 테이블 디자인 수정시 주의 사항   member 아침마당 1 / 0 28225 2010-08-22
24  [MSSQL] ISNULL 함수 간단 예제   member 아침마당 4 / 1 47998 2010-08-05
23  MSSQL - SELECT 와 동시에 INSERT 하기   admin 웹마당넷 14 / 3 153923 2009-02-03
22  MSSQL - IDENTITY 값 초기화 하기   admin 웹마당넷 3 / 2 63463 2009-01-27
21  MS-SQL 클러스터드 인덱스를 어떤 컬럼(들)에 생성하는 것이 유리할까?   member 마카로니 0 / 0 30014 2009-01-08
20  테이블 및 개체의 정보를 확인하기 위한 시스템 저장 프로시저(System Stored pr..   admin 웹마당넷 0 / 0 27632 2008-12-20
19  MSSQL 조인(JOIN)을 이용한 UPDATE 및 DELETE   admin 웹마당넷 5 / 0 53899 2008-11-29
18  SQL injection 웹에서 체크하기   member 수확물 0 / 0 26860 2008-10-10
17  MSSQL - CASE WHEN문   member 다자래 1 / 0 69968 2008-09-19
16  [MSSQL] 파티션 정보 검색   member 수확물 0 / 0 28703 2008-09-08
15  [MSSQL] DDL_Trigger_Example   member 수확물 0 / 0 34650 2008-09-08
14  [MSSQL] xml을 이용한 split   member 수확물 1 / 0 28823 2008-08-26
13  MSSQL - UNION ALL을 이용했을때 테이블명 가져오기 이미지   member 다자래 0 / 0 40225 2008-08-21
12  MSSQL - NULL 값을 다른 값으로 대체하기   member 다자래 8 / 4 101420 2008-08-21
11  [MSSQL] View안에 저장프로스져를 쓰는 방법   member 수확물 0 / 0 45392 2008-08-08
10  MSSQL - 숫자 세자리 마다 콤마(쉼표) 찍기   member 다자래 5 / 0 59247 2008-08-07
write
[2] button