반응형
우선 UNION ALL , UNION 은 쿼리에서 아래와 같은 역할을 합니다.
공통점 : 쿼리를 합쳐주는 역할을 한다
차이점 : 중복 제거해주는지 중복 허용하는지
- UNION ALL : 중복 허용
- UNION : 중복 제거
두개 모두 성능에는 좋은 영향을 주지 않지만
특히 쿼리 성능이 저하되기 때문에 최대한 UNION 사용은 지양해야합니다.
주의사항은 컬럼의 개수, 데이터 타입이 모두 같아야합니다.
사용법은 아래와 같습니다.
UNION
- TESTTABLE
USERID | NAME |
1004 | 천사 |
9999 | 악마 |
SELECT *
FROM TESTTABLE A WITH(NOLOCK)
WHERE A.USERID = '1004'
AND A.NAME = '천사'
UNION
SELECT *
FROM TESTTABLE B WITH(NOLOCK)
WHERE A.USERID = '9999'
AND A.NAME = '악마'
UNION
SELECT *
FROM TESTTABLE B WITH(NOLOCK)
WHERE A.USERID = '1004'
AND A.NAME = '천사'
조회되는 테이블
USERID | NAME |
1004 | 천사 |
9999 | 악마 |
맨 아래 USERID 와 NAME 이 같은 천사는 중복 제거가 되게 됩니다.
UNION ALL
- TESTTABLE
USERID | NAME |
1004 | 천사 |
9999 | 악마 |
SELECT *
FROM TESTTABLE A WITH(NOLOCK)
WHERE A.USERID = '1004'
AND A.NAME = '천사'
UNION ALL
SELECT *
FROM TESTTABLE B WITH(NOLOCK)
WHERE A.USERID = '9999'
AND A.NAME = '악마'
UNION ALL
SELECT *
FROM TESTTABLE B WITH(NOLOCK)
WHERE A.USERID = '1004'
AND A.NAME = '천사'
조회되는 테이블
USERID | NAME |
1004 | 천사 |
9999 | 악마 |
1004 | 천사 |
중복된 UNION ALL 도 조회가 되게 됩니다.
반응형
'데이터베이스' 카테고리의 다른 글
MSSQL 쿼리 주의사항 주요 실수 (0) | 2024.01.17 |
---|---|
[MSSQL] 여러개 쿼리 하나로 묶기_UNION ALL (0) | 2023.11.28 |
[SQLD] SQLD 책 추천, 노랑이 (0) | 2023.08.22 |
[SQLD] SQLD 후기 및 공부방법 (0) | 2023.06.25 |
MSSQL sp 명령어 (0) | 2023.01.23 |