Trong hướng dẫn này, bạn sẽ tìm hiểu cách sử dụng EXCEPT
trong SQL Server để loại trừ tập kết quả của một truy vấn ra khỏi tập kết quả của một truy vấn khác.
Toán tử EXCEPT
trong SQL Server so sánh tập hợp kết quả của hai truy vấn và trả về các bản ghi của truy vấn thứ nhất không xuất hiện trong các bản ghi của truy vấn thứ hai.
Nói cách khác, hàm EXCEPT
loại trừ tập kết quả của một truy vấn từ một truy vấn khác.
Sau đây là cú pháp của EXCEPT
trong SQL Server:
query_1
EXCEPT
query_2
Sau đây là các quy tắc để kết hợp tập kết quả của hai truy vấn theo cú pháp trên:
Hình sau cho thấy cách EXCEPT
xử lý hai tập kết quả T1 và T2:
Trong hình minh họa này:
except
của T1 và T2 trả về 1, là bản ghi khác biệt với tập kết quả T1 không xuất hiện trong tập kết quả T2.
Xem bảng products
và order_items
trong cơ sở dữ liệu mẫu BikeStores.
EXCEPT
đơn giảnVí dụ sau sử dụng toán tử EXCEPT
để tìm các sản phẩm không có doanh số:
SELECT
product_id
FROM
production.products
EXCEPT
SELECT
product_id
FROM
sales.order_items;
Trong ví dụ này, truy vấn đầu tiên trả về tất cả các sản phẩm. Truy vấn thứ hai trả về các sản phẩm có doanh số bán hàng. Do đó, tập hợp kết quả chỉ bao gồm các sản phẩm không có doanh số.
EXCEPT
với mệnh đề ORDER BY
trong SQL ServerĐể sắp xếp tập hợp kết quả được tạo bởi toán tử EXCEPT
, bạn thêm mệnh đề ORDER BY
trong truy vấn cuối cùng. Ví dụ: ví dụ sau tìm các sản phẩm không có doanh số bán hàng và sắp xếp các sản phẩm theo thứ tự tăng dần theo id của chúng:
SELECT
product_id
FROM
production.products
EXCEPT
SELECT
product_id
FROM
sales.order_items
ORDER BY
product_id;
Trong hướng dẫn này, bạn đã tìm hiểu cách sử dụng toán tử EXCEPT
trong SQL Server để loại trừ tập kết quả của một truy vấn ra khỏi tập kết quả của một truy vấn khác.
Trong hướng dẫn này, bạn sẽ học cách sử dụng biểu thức CASE, COALESCE và NULLIF trong SQL Server.
Trong hướng dẫn này, bạn sẽ học cách sử dụng biểu thức NULLIF trong SQL Server để trả về NULL nếu đối số đầu tiên bằng đối số thứ hai.
Trong hướng dẫn này, bạn sẽ học cách sử dụng biểu thức COALESCE trong SQL Server để xử lý giá trị NULL trong các truy vấn.
Trong hướng dẫn này, bạn sẽ học cách sử dụng biểu thức CASE trong SQL Server để thêm logic if-else vào các truy vấn SQL.