Toán tử any và toán tử all trong SQL Server

Toán tử any và toán tử all trong SQL server là toán tử logic, có kết quả trà về kiểu boolean TRUE hay FALSE. Vậy thì toán tử any, toán tử all trong SQL là gì? Cú pháp và cách dùng ra sao? Cùng Comdy.vn tìm hiểu ngay trong bài viết này nhé.

Tổng quan về toán tử all trong SQL Server

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

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 SQL Server

Ví dụ về toán tử all SQL Server
Lấy ví dụ cụ thể về toán tử all 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;

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 (<>).

Câu lệnh any trong SQL là gì?

Câu lệnh any trong SQL là gì
Câu lệnh ANY được sử dụng trong các truy vấn để so sánh một giá trị với một tập hợp giá trị

Trong SQL, câu lệnh ANY được sử dụng trong các truy vấn để so sánh một giá trị với một tập hợp giá trị và trả về kết quả nếu có ít nhất một giá trị thỏa mãn điều kiện. Cú pháp chung của câu lệnh ANY là như sau:

SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY (subquery);

Trong đó:

  • column_name(s) là tên của các cột mà bạn muốn hiển thị trong kết quả.
  • table_name là tên của bảng bạn đang truy vấn.
  • column_name là tên của cột mà bạn muốn áp dụng điều kiện.
  • operator là toán tử so sánh (ví dụ: =, >, <, <>,…).
  • subquery là một truy vấn con trả về một tập hợp giá trị để so sánh với giá trị trong cột.

Ví dụ về câu lệnh any trong SQL

SELECT product_name
FROM products
WHERE price > ANY (SELECT price FROM other_products);

Trong ví dụ này, câu lệnh trả về tất cả các tên sản phẩm từ bảng products mà có giá cao hơn ít nhất một sản phẩm trong bảng other_products.

Những toán tử khác trong SQL là gì?

Những toán tử khác trong SQL là gì
Tổng hợp những toán tử trong SQL server

Ngoài all và and trong SQL server thì còn rất nhiều toán tử khác được sử dụng trong phép toán so sánh, phép toán logic như sau:

Toán tử so sánh

  • =: Bằng
  • <> hoặc !=: Khác
  • <: Nhỏ hơn
  • <=: Nhỏ hơn hoặc bằng
  • >: Lớn hơn
  • >=: Lớn hơn hoặc bằng

Toán tử logic

  • AND: Toán tử AND logic
  • OR: Toán tử OR logic
  • NOT: Toán tử NOT logic

Toán tử giữa chuỗi (String Operators)

  • || hoặc CONCAT(): Nối chuỗi
  • LIKE: So sánh chuỗi dựa trên mẫu
  • IN: Kiểm tra xem giá trị có trong một tập hợp giá trị hay không

Toán tử số học

  • +: Cộng
  • -: Trừ
  • *: Nhân
  • /: Chia
  • %: Chia lấy phần dư

Toán tử BETWEEN

BETWEEN: Kiểm tra xem giá trị có nằm trong khoảng giữa hai giá trị khác nhau hay không.

Toán tử IS NULL và IS NOT NULL

  • IS NULL: Kiểm tra xem giá trị có là NULL hay không.
  • IS NOT NULL: Kiểm tra xem giá trị có khác NULL hay không.

Toán tử EXISTS

EXISTS: Kiểm tra xem một tập hợp kết quả con có tồn tại hay không.

Toán tử ANY và ALL

  • ANY: So sánh một giá trị với một tập hợp và trả về true nếu có ít nhất một giá trị thỏa mãn điều kiện.
  • ALL: So sánh một giá trị với tất cả các giá trị trong một tập hợp và trả về true nếu tất cả đều thỏa mãn điều kiện.

Desc trong SQL là gì?

Desc trong SQL là gì
DESC được sử dụng trong câu lệnh SELECT để sắp xếp kết quả truy vấn theo thứ tự giảm dần

Trong SQL, DESC được sử dụng trong câu lệnh SELECT để sắp xếp kết quả truy vấn theo thứ tự giảm dần (descending order) của một hoặc nhiều cột. Cụ thể, khi bạn sử dụng DESC sau một tên cột trong mệnh đề ORDER BY, kết quả sẽ được sắp xếp từ giá trị lớn nhất đến giá trị nhỏ nhất theo cột đó.

Cú pháp:

SELECT column1, column2, …
FROM table_name
ORDER BY column1 DESC, column2 DESC, …;

Ví dụ:

SELECT employee_id, employee_name, salary
FROM employees
ORDER BY salary DESC;

Avg trong SQL là gì?

Trong SQL, AVG là một hàm tổng hợp (aggregate function) được sử dụng để tính giá trị trung bình của một cột số. Tóm lại, AVG trả về giá trị trung bình của các giá trị số trong một cột cụ thể.

Cú pháp:

SELECT AVG(column_name)
FROM table_name;

Trong đó:

  • column_name là tên của cột chứa các giá trị số mà bạn muốn tính giá trị trung bình.
  • table_name là tên của bảng chứa cột đó.

Ví dụ:

SELECT AVG(salary)
FROM employees;

With trong SQL là gì?

With trong SQL là gì
WITH được sử dụng trong SQL server để tạo một Common Table Expression hoặc 1 biểu thức bảng chung

WITH được sử dụng trong SQL server để tạo một Common Table Expression (CTE), hay một biểu thức bảng chung. CTE là một tạm thời kết quả của một truy vấn, có thể được sử dụng trong một truy vấn SELECT, INSERT, UPDATE hoặc DELETE. CTE thường được sử dụng để làm cho câu lệnh truy vấn trở nên dễ đọc hơn và giảm lặp lại code.

Cú pháp:

WITH cte_name (column1, column2, …) AS (
— Truy vấn chọn dữ liệu cho CTE
SELECT column1, column2, …
FROM table_name
WHERE conditions
)
— Sử dụng CTE trong truy vấn chính
SELECT *
FROM cte_name
WHERE additional_conditions;

Trong đó:

  • cte_name là tên bạn đặt cho CTE.
  • (column1, column2, …) là danh sách các cột bạn chọn để trả về từ CTE (không bắt buộc).
  • SELECT column1, column2, … FROM table_name WHERE conditions là truy vấn chọn dữ liệu cho CTE.

Kết lại

Trên đây là toàn bộ chia sẻ của Comdy về toán tử all trong SQL và các toán tử khác. Hi vọng những kiến thức, thông tin đề cập trong bài viết này là bổ ích, ý nghĩa với bạn. Cùng theo dõi để cập nhật ngay những kiến thức công nghệ thông tin mới nhất nhé.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *