Phép toán MINUS trong SQL được sử dụng để trả về các hàng dữ liệu có trong tập kết quả của câu lệnh SELECT đầu tiên mà không có trong tập kết quả của câu lệnh SELECT thứ hai. Nó tương tự như phép toán EXCEPT trong một số hệ quản trị cơ sở dữ liệu khác.
Using The MINUS operator – Sử dụng toán tử MINUS trong SQL
Cú pháp của MINUS
Cú pháp chung để sử dụng MINUS trong SQL là:
SELECT column1, column2, ... FROM table1 MINUS SELECT column1, column2, ... FROM table2;
Trong đó:
- SELECT column1, column2, … là các cột mà bạn muốn chọn từ các bảng hoặc các điều kiện.
- table1 là bảng hoặc câu lệnh SELECT đầu tiên.
- table2 là bảng hoặc câu lệnh SELECT thứ hai.
Ví dụ về sử dụng MINUS
Giả sử bạn có hai bảng OldProducts và NewProducts, và bạn muốn tìm các sản phẩm đã bị ngừng bán từ bảng OldProducts (các sản phẩm không có trong bảng NewProducts). Dưới đây là ví dụ cụ thể:
Bảng OldProducts
product_id | product_name |
---|---|
1 | Laptop |
2 | Smartphone |
3 | Tablet |
4 | Headphones |
5 | Monitor |
Bảng NewProducts
product_id | product_name |
---|---|
1 | Laptop |
3 | Tablet |
5 | Monitor |
6 | Keyboard |
Bạn muốn lấy ra các sản phẩm từ bảng OldProducts mà không có trong bảng NewProducts. Bạn có thể sử dụng MINUS như sau:
SELECT product_id, product_name FROM OldProducts MINUS SELECT product_id, product_name FROM NewProducts;
Kết quả sẽ là:
product_id | product_name |
---|---|
2 | Smartphone |
4 | Headphones |
Điều kiện và lưu ý khi sử dụng MINUS
- Các SELECT phải có cùng số lượng cột: Mỗi câu lệnh SELECT trong phép MINUS phải trả về cùng số lượng cột với cùng kiểu dữ liệu hoặc có thể chuyển đổi ngầm định.
- Các cột phải có cùng kiểu dữ liệu hoặc có thể chuyển đổi: Các cột được chọn từ các câu lệnh SELECT phải có cùng kiểu dữ liệu hoặc có thể chuyển đổi ngầm định.
- Phép toán MINUS loại bỏ các dòng trùng lặp: Kết quả của MINUS sẽ bao gồm các hàng duy nhất mà có trong tập kết quả của câu lệnh SELECT đầu tiên mà không có trong tập kết quả của câu lệnh SELECT thứ hai.
- Phép toán MINUS không hỗ trợ trong một số hệ quản trị cơ sở dữ liệu: Mặc dù phép toán MINUS phổ biến trong SQL, một số hệ quản trị cơ sở dữ liệu nhất định như SQL Server thay thế nó bằng phép toán EXCEPT.
Tóm lại:
Phép toán MINUS trong SQL là một công cụ mạnh mẽ để tìm các hàng dữ liệu mà có trong tập kết quả của câu lệnh SELECT đầu tiên mà không có trong tập kết quả của câu lệnh SELECT thứ hai. Nó hữu ích khi bạn cần tìm ra sự khác biệt hoặc những gì đã bị loại bỏ giữa hai tập dữ liệu. Hãy đảm bảo rằng các câu lệnh SELECT trong phép MINUS của bạn phù hợp về cả cấu trúc cột và kiểu dữ liệu để tránh lỗi và đảm bảo tính chính xác của kết quả.