[MSSQL] Union,UnionAll 사용법 & 예제

Union이란? 

Union은 여러 개의 SQL문을 합쳐 하나의 SQL문으로 만들어주는 방법입니다.

두 개의 쿼리의 합집합을 만들어준다고 생각하면 될듯합니다.                    

 

Union과 UnionAll의 차이점 

Union과 UnionAll은 두 쿼리문을 하나로 합쳐준다는 것에 공통점이 있습니다.

하지만 Union은 두 쿼리의 결과의 중복값을 제거해서 보여주고,

UnionAll은중복된 값도 전부 다 보여준다는 차이점이 있습니다.

속도는 당연히 중복 값 제거를 위해 연산을 한번 더 해야 하기 때문에 

UnionAll이 Union보다 더 빠르겠죠?

 

Union 사용 시 주의점

☞ 칼럼명이 같아야 한다. (같지 않을 경우 AS를 사용하여 같게 만들어주면 됩니다.)

☞ 칼럼 별 데이터 타입이 같아야 합니다.

 

UNION / UNION ALL 사용법

쿼리문1
Union/UnionAll
쿼리문2

 

1. 두 개의 테이블 조회 쿼리문 합집합 구하기

SELECT * FROM EX_TABLE1
Union/UnionAll
SELECT * FROM EX_TABLE2

 

2. 품목별 총합계금액 구하기

SELECT
COMPANY,
ITEM,
MAX(AM) AS AM,
MAX(QT_IO) AS QT_IO,
MAX(AM_RETURN) AS AM_RETURN,
MAX(QT_RETURN) AS QT_RETURN,
MAX(AM)*MAX(QT_IO)-MAX(AM_RETURN)*MAX(QT_RETURN) AS AM_TOT
FROM
(
    SELECT
    COMPANY,
    ITEM,
    AM,
    QT_IO,
    '0'AM_RETURN,
    '0'QT_RETURN
    FROM EX_TABLE01
UNION ALL
    SELECT
    COMPANY,
    ITEM,
    '0'AM,
    '0'QT_IO,
    AM AS AM_RETURN,
    QT_RETURN
    FROM EX_TABLE02
)UN
group by COMPANY,ITEM

 

[MS_SQL] 서브 쿼리(SubQuery) 사용법 & 예제

[MS_SQL] 프로시저 생성, 조회, 수정, 삭제

[MS_SQL] 피벗테이블을 활용하여 세로로 된 데이터 가로로 출력하기

[MS_SQL] 반복문(WHILE) 사용법 & 예제

[MS_SQL] SET NOCOUNT 정의와 사용법 (프로시저 성능 향상)

 

댓글

Designed by JB FACTORY