Toán tử SQL ANY và SQL ALL trong SQL được sử dụng để so sánh một giá trị với một dãy giá trị trong một subquery (truy vấn con). Tuy nhiên, chúng có cách kiểm tra sự khớp khác nhau:
- Toán tử ANY:
- Kiểm tra xem ít nhất một giá trị trong subquery thỏa mãn điều kiện so sánh với giá trị chính.
- Trả về TRUE nếu ít nhất một giá trị khớp và FALSE nếu không có giá trị nào khớp.
Cú pháp:
SELECT column_name(s) FROM table_name WHERE column_name operator ANY (SELECT column_name FROM table_name WHERE condition);
Ví dụ:
SELECT * FROM Products WHERE Price ANY (SELECT Price FROM SpecialOffers);
Trong ví dụ này, truy vấn sẽ trả về tất cả sản phẩm có giá bằng với ít nhất một sản phẩm trong bảng SpecialOffers.
- Toán tử ALL:
- Kiểm tra xem tất cả các giá trị trong subquery thỏa mãn điều kiện so sánh với giá trị chính.
- Trả về TRUE nếu tất cả các giá trị khớp và FALSE nếu ít nhất một giá trị không khớp.
Cú pháp:
-- ALL Syntax With SELECT SELECT ALL column_name(s) FROM table_name WHERE condition; --ALL Syntax With WHERE or HAVING SELECT column_name(s) FROM table_name WHERE column_name operator ALL (SELECT column_name FROM table_name WHERE condition);
Ví dụ:
SELECT * FROM Employees WHERE Salary ALL (SELECT Salary FROM Managers);
Trong ví dụ này, truy vấn sẽ trả về tất cả nhân viên có mức lương bằng với tất cả mức lương của các quản lý (Managers).
Lưu ý:
- Cả hai toán tử ANY và ALL đều yêu cầu điều kiện so sánh trước subquery, chẳng hạn như =, <, >, v.v.
- Subquery thường được sử dụng để so sánh với một tập hợp các giá trị cụ thể hoặc kết quả của một truy vấn khác.