Computer >> Máy Tính >  >> Lập trình >> SQL Server

UNION ALL toán tử trong SQL Server

Toán tử UNION ALL được sử dụng để kết hợp tập kết quả từ 2 câu lệnh SELECT trở lên trong SQL Server.

Không giống như toán tử UNION, toán tử UNION ALL trả về tất cả các hàng từ truy vấn và không xóa các hàng trùng lặp.

Mỗi SELECT trong toán tử UNION phải có cùng số cột trong tập kết quả với kiểu dữ liệu tương ứng.

Cú pháp của toán tử 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];

Tên biến hoặc giá trị biến

bieu_thuc1, bieu_thuc2 ,. bieu_thucn

Cột hoặc giá trị tính toán bạn muốn truy xuất.

trạng thái

Bảng muốn lấy bản ghi. Phải có ít nhất 1 bảng trong mệnh đề FROM.

WHERE dieu_kien

Tùy chọn. Các điều kiện phải đáp ứng cho bản ghi đã chọn.

Lưu ý:

  1. 2 câu lệnh SELECT phải có cùng số lượng biểu thức
  2. Số cột tương ứng trong mỗi câu lệnh SELECT phải có cùng kiểu dữ liệu
  3. Toán tử UNION không xóa các hàng trùng lặp.
  4. Xem các toán tử UNION khác

Ví dụ:trả về trường thông tin

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

Ví dụ này trả về nhiều sanpham_id trong tập kết quả nếu chúng xuất hiện trong cả bảng sanpham và hangtonkho. Nếu bạn muốn xóa các bản sao, hãy sử dụng toàn bộ phần tử UNION.

Ví dụ:sử dụng ORDER BY

Toán tử UNION ALL có thể sử dụng mệnh đề ORDER BY để sắp xếp kết quả truy vấn.

  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;

Trong ví dụ này, vì tên cột trong hai câu lệnh SELECT khác nhau, nên việc tham chiếu đến cột trong câu lệnh ORDER BY theo vị trí trong tập kết quả sẽ dễ dàng hơn. Trong ví dụ trên, chúng tôi lọc kết quả theo namba_ten / congty_ten theo thứ tự tăng dần, như được nêu trong cụm từ ORDER BY 2.

danhba_ten / congty_ten nằm ở vị trí thứ hai trong tập kết quả.