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ệnh SELECT 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.

Toán tử ALL trong SQL Server

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;
Toán tử ALL trong SQL Server

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;
Toán tử ALL trong SQL Server

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;
Toán tử ALL trong SQL Server

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.

SQL ServerSubquery
Bài Viết Liên Quan:
INTERSECT trong SQL Server
Trung Nguyen 22/11/2020
INTERSECT trong SQL Server

Tìm hiểu cách sử dụng toán tử INTERSECT trong SQL Server để trả về phần giao nhau của các tập kết quả của hai truy vấn.

EXCEPT trong SQL Server
Trung Nguyen 22/11/2020
EXCEPT trong SQL Server

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.

SQL Server: Hướng dẫn subquery trong SQL Server từ A-Z
Trung Nguyen 22/11/2020
SQL Server: Hướng dẫn subquery trong SQL Server từ A-Z

Tìm hiểu về subquery, toán tử EXISTS, ANY, ALL trong SQL Server và cách sử dụng truy vấn con để truy vấn dữ liệu.

UNION trong SQL Server
Trung Nguyen 22/11/2020
UNION trong SQL Server

Tìm hiểu cách sử dụng UNION trong SQL Server để kết hợp kết quả của hai hoặc nhiều truy vấn thành một tập kết quả duy nhất.