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:
Hướng dẫn đầy đủ về Expression trong SQL Server
Trung Nguyen 18/03/2021
Hướng dẫn đầy đủ về Expression trong SQL Server

Trong hướng dẫn này, bạn sẽ học cách sử dụng biểu thức CASE, COALESCE và NULLIF trong SQL Server.

NULLIF trong SQL Server
Trung Nguyen 18/03/2021
NULLIF trong SQL Server

Trong hướng dẫn này, bạn sẽ học cách sử dụng biểu thức NULLIF trong SQL Server để trả về NULL nếu đối số đầu tiên bằng đối số thứ hai.

COALESCE trong SQL Server
Trung Nguyen 18/03/2021
COALESCE trong SQL Server

Trong hướng dẫn này, bạn sẽ học cách sử dụng biểu thức COALESCE trong SQL Server để xử lý giá trị NULL trong các truy vấn.

CASE trong SQL Server
Trung Nguyen 18/03/2021
CASE trong SQL Server

Trong hướng dẫn này, bạn sẽ học cách sử dụng biểu thức CASE trong SQL Server để thêm logic if-else vào các truy vấn SQL.