Toán tử UNION trong SQL Server

union trong sql

Toán tử UNION được dùng để kết hợp 2 bộ kết quả từ 2 hoặc nhiều lệnh SELECT. Nó sẽ xóa các hàng trùng trong các lệnh SELECT này.

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

[external_link_head]

Cú pháp toán tử UNION

SELECT bieu_thuc1, bieu_thuc2, … bieu_thucn

FROM bang

[WHERE dieu_kien]

UNION

SELECT bieu_thuc1, bieu_thuc2, … bieu_thucn

FROM bang

[WHERE dieu_kien];

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 muốn lấy.

bang

[external_link offset=1]

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. Điều kiện phải đáp ứng để bản ghi được chọn.

Lưu ý:

  • 2 lệnh SELECT phải có cùng số biểu thức
  • Số cột tương ứng trong mỗi lệnh SELECT phải có cùng kiểu dữ liệu
  • Toán tử UNION xóa các hàng trùng nhau.
  • Xem thêm toán tử UNION ALL.

Ví dụ – trả về một trường thông tin

Ví dụ toán tử UNION trả về 1 trường từ nhiều lệnh SELECT (và các trường có cùng kiểu dữ liệu).

SELECT sanpham_id

FROM sanpham

UNION

SELECT sanpham_id

FROM hangtonkho;

Ở ví dụ trên, nếu có sanpham_id nào xuất hiện ở cả bảng sanpham và hangtonkho, thì sẽ chỉ còn 1 sanpham_id xuất hiện trong bộ kết quả. Nếu không muốn loại bỏ bản ghi trùng, hãy dùng toán tử UNION ALL.

Ví dụ – dùng ORDER BY

[external_link offset=2]

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

SELECT danhba_id, danhba_ten

FROM danhba

WHERE ten_trang = ‘QuanTriMang.com’

UNION

SELECT congty_id, congty_ten

FROM congty

WHERE ten_trang = ‘TrangCuaBan.com’

ORDER BY 2;

Ở ví dụ này, vì tên cột ở 2 lệnh SELECT khác nhau nên sẽ dễ hơn khi tham chiếu tới cột trong lệnh ORDER BY bằng vị trí trong bộ kết quả. Trong ví dụ trên, ta lọc kết quả theo danhba_ten / congty_ten theo thứ tự tăng dần, như đã nói bằng cụm từ ORDER BY 2.

danhba_ten / congty_ten nằm ở vị trí thứ 2 trong bộ kết quả.

Bài trước: Lệnh DELETE TOP trong SQL Server

Bài sau: Toán tử UNION ALL trong SQL Server[external_footer]

Total
0
Shares
Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Previous Post
hiện tượng cầu vồng tròn quanh mặt trời

Quầng mặt trời là gì? Lý giải hiện tượng cầu vồng tròn quanh mặt trời

Next Post
mệnh đề là gì

Mệnh đề là gì? Các loại mệnh đề quan trọng cần ghi nhớ

Related Posts
share nghĩa là gì

Share có nghĩa là gì?

Share có nghĩa là gì? Share (“Xe hay se”) có nghĩa là “chia sẻ” - là một trong những từ tiếng Anh được sử dụng phổ biến nhất hiện nay trong thời đại mạng xã hội.
Read More