Computer >> 컴퓨터 >  >> 프로그램 작성 >> SQL Server

SQL Server의 UNION ALL 연산자

UNION ALL 연산자는 SQL Server에서 2개 이상의 SELECT 문의 결과 집합을 결합하는 데 사용됩니다.

UNION 연산자와 달리 UNION ALL 연산자는 쿼리에서 모든 행을 반환하고 중복 행을 삭제하지 않습니다.

UNION 연산자의 각 SELECT는 해당 데이터 유형의 결과 집합에서 동일한 수의 열을 가져야 합니다.

UNION ALL 연산자 구문

  SELECT bieu_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 위치

옵션. 선택한 레코드에 대해 조건이 충족되어야 합니다.

참고:

  1. 2개의 SELECT 문에는 동일한 수의 표현식이 있어야 합니다.
  2. 각 SELECT 문의 해당 열의 데이터 유형은 동일해야 합니다.
  3. UNION 연산자는 중복 행을 삭제하지 않습니다.
  4. UNION 연산자 더보기

예:정보 필드 반환

  SEL ECT sanpham_id 
FROM sanpham
UNION ALL
SELECT sanpham_id
FROM hangtonkho;

이 예는 sanpham 및 hangtonkho 테이블 모두에 나타나는 경우 결과 세트에 많은 sanpham_id를 반환합니다. 중복 삭제를 원하시면 UNION 전체 요소를 사용하세요.

예:ORDER BY 사용

UNION ALL 연산자는 ORDER BY 절을 사용하여 쿼리 결과를 정렬할 수 있습니다.

  SELECT dan hba_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은 결과 집합의 두 번째 위치에 있습니다.