UNION ALL 연산자는 SQL Server에서 2개 이상의 SELECT 문의 결과 집합을 결합하는 데 사용됩니다.
UNION 연산자와 달리 UNION ALL 연산자는 쿼리에서 모든 행을 반환하고 중복 행을 삭제하지 않습니다.
UNION 연산자의 각 SELECT는 해당 데이터 유형의 결과 집합에서 동일한 수의 열을 가져야 합니다.
UNION ALL 연산자 구문
SELECTbieu_thuc1, bieu_thuc2, … bieu_thucn
FROM bang
[WHERE dieu_kien]
UNION ALL
SELECT bieu_thuc1, bieu_thuc2, … bieu_thucn
FROM bang
[WHERE dieu_k
ien];
변수 이름 또는 변수 값
bieu_thuc1, bieu_thuc2, . bieu_thucn
검색하려는 열 또는 계산 값입니다.
상태
테이블이 레코드를 가져오려고 합니다. FROM 절에 최소한 1개의 테이블이 있어야 합니다.
dieu_kien 위치
옵션. 선택한 레코드에 대해 조건이 충족되어야 합니다.
참고:
- 2개의 SELECT 문에는 동일한 수의 표현식이 있어야 합니다.
- 각 SELECT 문의 해당 열의 데이터 유형은 동일해야 합니다.
- UNION 연산자는 중복 행을 삭제하지 않습니다.
- UNION 연산자 더보기
예:정보 필드 반환
SELECT sanpham_id
FROM sanpham
UNION ALL
SELECT sanpham_id
FROM
hangtonkho;
이 예는 sanpham 및 hangtonkho 테이블 모두에 나타나는 경우 결과 세트에 많은 sanpham_id를 반환합니다. 중복 삭제를 원하시면 UNION 전체 요소를 사용하세요.
예:ORDER BY 사용
UNION ALL 연산자는 ORDER BY 절을 사용하여 쿼리 결과를 정렬할 수 있습니다.
SELECT danhba_id, danhba_ten
FROM danhba
WHERE ten_trang = 'QuanTriMang.com'
UNION ALL
SELECT congty_id, congty_ten
FROM congty
WHERE ten_trang = 'TrangCuaBan.com'
ORDER BY 2;
이 예에서는 두 SELECT 문의 열 이름이 다르기 때문에 ORDER BY 문의 열을 결과 집합의 위치별로 참조하는 것이 더 쉽습니다. 위의 예에서 우리는 ORDER BY 2라는 문구에 따라 오름차순으로 namba_ten / congty_ten을 기준으로 결과를 필터링합니다.
danhba_ten / congty_ten은 결과 집합의 두 번째 위치에 있습니다.