Toán tử Any và All cho phép bạn thực hiện so sánh giữa một giá trị cột đơn và một loạt các giá trị khác.
1. Toán tử Any trong SQL
Toán tử Any sẽ:
- Trả về kết quả là một giá trị kiểu boolean.
- Trả về TRUE nếu có bất kỳ giá trị con nào khớp với điều kiện.
Any có nghĩa là điều kiện sẽ đúng nếu hoạt động đúng với bất kỳ giá trị nào trong phạm vi.
- Cú pháp của Any:
SELECT tên một hoặc nhiều cột
FROM tên bảng
WHERE tên cột toán tử ANY
(SELECT tên cột
FROM tên bảng
WHERE điều kiện
);
Lưu ý: Toán tử đứng trước ANY phải là một dấu so sánh tiêu chuẩn (=, <>, !=, >, >=, <, hoặc <=).
2. Toán tử ALL trong SQL
Toán tử All sẽ:
- Trả về kết quả là một giá trị boolean.
- Trả về TRUE nếu tất cả các giá trị con khớp với điều kiện.
- Thường được dùng với các mệnh đề SELECT, WHERE và HAVING.
All có nghĩa là điều kiện sẽ đúng nếu toán tử là đúng với tất cả giá trị trong phạm vi.
- Cú pháp All với SELECT:
SELECT ALL tên cột
FROM tên bảng
WHERE điều kiện;
- Cú pháp ALL với WHERE hoặc HAVING:
SELECT tên cột
FROM tên bảng
WHERE tên cột toán tử ALL
(SELECT tên cột
FROM tên bảng
WHERE điều kiện);
Lưu ý: Toán tử phải là một dấu so sánh tiêu chuẩn (=, <>, !=, >, >=, <, hoặc <=).
Tiếp theo, để minh họa cho các công thức trên, chúng ta sẽ thực hiện một số ví dụ.
Để thực hiện các ví dụ này, bạn cần nhập cơ sở dữ liệu mẫu Northwind vào SQL Server Management Studio. Hãy xem bài viết hướng dẫn ngay dưới đây:
Tham khảo: Hướng dẫn tải và cài đặt dữ liệu mẫu Northwind trong SQL Server Management Studio
3. Ví dụ về ANY trong SQL
Câu lệnh SQL dưới đây sẽ liệt kê ProductName nếu nó tìm thấy bất kỳ bảng ghi nào trong bảng Order Details có Quantity bằng 10 (kết quả trả về là TRUE với những giá trị tương ứng, vì cột Quantity có một số giá trị bằng 10).
SELECT ProductName
FROM Products
WHERE ProductID = ANY
(SELECT ProductID
FROM [Order Details]
WHERE Quantity = 10);
Câu lệnh SQL dưới đây sẽ liệt kê ProductName nếu nó tìm thấy bất kỳ bảng ghi nào trong bảng Order Details có Quantity lớn hơn 1000 (kết quả trả về là FALSE hay không có giá trị nào trả về, vì cột Quantity không có giá trị nào lớn hơn 1000).
SELECT ProductName
FROM Products
WHERE ProductID = ANY
(SELECT ProductID
FROM [Order Details]
WHERE Quantity > 1000);
4. Ví dụ về ALL trong SQL
Câu lệnh SQL dưới đây sẽ liệt kê ProductName nếu tất cả các bảng ghi trong bảng Order Details có Quantity bằng 10. Kết quả trả về là FALSE hay không có giá trị nào được trả về, vì Quantity có những giá trị khác 10.
SELECT ProductName
FROM Products
WHERE ProductID = ALL
(SELECT ProductID
FROM [Order Details]
WHERE Quantity = 10);
Trên đây là hai toán tử ALL và ANY trong SQL cùng những ví dụ khi phân tích dữ liệu. Các bạn có thể tự mình thực hiện bằng cơ sở dữ liệu mẫu trong bài hoặc ứng dụng trực tiếp cho dữ liệu của mình. Mong rằng bài viết đã mang đến những kiến thức hữu ích cho bạn đọc, đừng quên đón xem các nội dung mới nhất tại BAC’s Blog.
Nguồn tham khảo:
https://www.w3schools.com/
Nhu cầu đào tạo doanh nghiệp
BAC là đơn vị đào tạo BA đầu tiên tại Việt Nam. Đối tác chính thức của IIBA quốc tế. Ngoài các khóa học public, BAC còn có các khóa học in house dành riêng cho từng doanh nghiệp. Chương trình được thiết kế riêng theo yêu cầu của doanh nghiệp, giúp doanh nghiệp giải quyết những khó khăn và tư vấn phát triển.
Các bài viết liên quan SQL:
Các bài viết liên quan Power BI:
- Power BI là gì?
- Chỉnh sửa và định hình dữ liệu trong Power BI Desktop
- Kết hợp dữ liệu trong Power BI Desktop
- Hướng dẫn kết nối dữ liệu trong Power BI Desktop
- Hướng dẫn tải & cài đặt Power BI trên máy tính
- Khóa học Phân tích và trực quan hóa dữ liệu với Power BI
Các bài viết liên quan:
BAC – Biên soạn và tổng hợp nội dung