Toán tử ALL trong SQL Server
Trong hướng dẫn này, bạn sẽ tìm hiểu cách sử dụng toán tử ALL
trong SQL Server để so sánh một giá trị với danh sách tập hợp giá trị cột đơn.
Tổng quan về toán tử ALL trong SQL Server
Toán tử ALL
trong SQL Server là một toán tử logic so sánh một giá trị với một danh sách giá trị cột đơn được trả về bởi một truy vấn con.
Sau đây minh họa cú pháp toán tử ALL
trong SQL Server:
scalar_expression comparison_operator ALL ( subquery)
Trong cú pháp này:
scalar_expression
là bất kỳ biểu thức hợp lệ nào.comparison_operator
là bất kỳ toán tử so sánh hợp lệ nào bao gồm bằng (=), không bằng (<>), lớn hơn (>), lớn hơn hoặc bằng (>=), nhỏ hơn (<), nhỏ hơn hoặc bằng (<=).- Trong
subquery
là một câu lệnhSELECT
trả về kết quả của một cột duy nhất. Ngoài ra, kiểu dữ liệu của cột trả về phải cùng kiểu dữ liệu với kiểu dữ liệu của biểu thức.
Toán tử ALL
sẽ trả về TRUE
nếu tất cả các cặp biểu thức (scalar_expression
, v
) trả về TRUE
; với v là một giá trị trong tập giá trị cột đơn.
Nếu một trong các cặp biểu thức (scalar_expression
, v
) trả về FALSE
thì toán tử ALL
sẽ trả về FALSE
.
Ví dụ về toán tử ALL trong SQL Server
Hãy xem bảng products
trong cơ sở dữ liệu mẫu BikeStores.

Câu lệnh sau trả về giá niêm yết trung bình của các sản phẩm cho từng thương hiệu:
SELECT
AVG (list_price) avg_list_price
FROM
production.products
GROUP BY
brand_id
ORDER BY
avg_list_price;

scalar_expression > ALL ( subquery )
Biểu thức trả về TRUE
nếu giá trị scalar_expression
lớn hơn giá trị lớn nhất được trả về bởi truy vấn con (subquery).
Ví dụ: truy vấn sau đây tìm các sản phẩm có giá niêm yết lớn hơn giá niêm yết trung bình của các sản phẩm thuộc tất cả các thương hiệu:
SELECT
product_name,
list_price
FROM
production.products
WHERE
list_price > ALL (
SELECT
AVG (list_price) avg_list_price
FROM
production.products
GROUP BY
brand_id
)
ORDER BY
list_price;

scalar_expression < ALL ( subquery )
Biểu thức trả về TRUE
nếu giá trị scalar_expression
nhỏ hơn giá trị nhỏ nhất được trả về bởi truy vấn con (subquery).
Ví dụ sau đây tìm các sản phẩm có giá niêm yết nhỏ hơn giá nhỏ nhất trong bảng giá trung bình theo thương hiệu:
SELECT
product_name,
list_price
FROM
production.products
WHERE
list_price < ALL (
SELECT
AVG (list_price) avg_list_price
FROM
production.products
GROUP BY
brand_id
)
ORDER BY
list_price DESC;

Tương tự, bạn có thể lấy ví dụ của riêng mình về việc sử dụng toán tử ALL
với một trong các toán tử so sánh sau, chẳng hạn như bằng (=), lớn hơn hoặc bằng (>=), nhỏ hơn hoặc bằng (<=) và không bằng (<>).
Trong hướng dẫn này, bạn đã tìm hiểu cách sử dụng toán tử ALL
trong SQL Server để so sánh một giá trị với một tập hợp giá trị cột đơn được trả về bởi một truy vấn con.