AND 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ử AND
trong SQL Server để kết hợp nhiều biểu thức Boolean.
Giới thiệu về toán tử AND trong SQL Server
Toán tử AND
trong SQL Server là một toán tử logic cho phép bạn kết hợp hai biểu thức Boolean. Nó chỉ trả về TRUE
khi cả hai biểu thức được đánh giá là TRUE
.
Sau đây minh họa cú pháp của toán tử AND
:
boolean_expression AND boolean_expression
boolean_expression
là bất kỳ biểu thức Boolean hợp lệ nào được đánh giá là TRUE
, FALSE
và UNKNOWN
.
Bảng dưới đây cho thấy kết quả khi bạn kết hợp các giá trị TRUE
, FALSE
và UNKNOWN
bằng cách sử dụng toán tử AND
:
TRUE | FALSE | UNKNOWN | |
---|---|---|---|
TRUE | TRUE | FALSE | UNKNOWN |
FALSE | FALSE | FALSE | FALSE |
UNKNOWN | UNKNOWN | FALSE | UNKNOWN |
Khi bạn sử dụng nhiều toán tử logic trong một biểu thức, SQL Server luôn đánh giá các toán tử AND
trước. Tuy nhiên, bạn có thể thay đổi thứ tự đánh giá bằng cách sử dụng dấu ngoặc đơn.
Ví dụ về toán tử AND trong SQL Server
Chúng tôi sẽ sử dụng bảng products
từ cơ sở dữ liệu mẫu để làm ví dụ minh họa cho toán tử AND trong SQL Server.
Sử dụng một toán tử AND trong SQL Server
Ví dụ sau đây tìm kiếm các sản phẩm có id loại sản phẩm là 1 và giá niêm yết lớn hơn 400:
SELECT
*
FROM
production.products
WHERE
category_id = 1 AND
list_price > 400
ORDER BY
list_price DESC;
Đây là kết quả:
Sử dụng nhiều toán tử AND trong SQL Server
Câu lệnh sau đây tìm kiếm các sản phẩm đáp ứng tất cả các điều kiện sau: id loại sản phẩm là 1, giá niêm yết lớn hơn 400 và id thương hiệu là 1:
SELECT
*
FROM
production.products
WHERE
category_id = 1 AND
list_price > 400 AND
brand_id = 1
ORDER BY
list_price DESC;
Đây là kết quả:
Sử dụng toán tử AND với các toán tử logic khác trong SQL Server
Xem ví dụ truy vấn sau:
SELECT
*
FROM
production.products
WHERE
brand_id = 1 OR
brand_id = 2 AND
list_price > 1000
ORDER BY
brand_id DESC;
Đây là kết quả:
Trong ví dụ này, chúng tôi đã sử dụng cả hai toán tử OR
và AND
trong điều kiện. Như mọi khi, SQL Server sẽ đánh giá toán tử AND
trước. Do đó, truy vấn đã truy xuất các sản phẩm có id thương hiệu là 2 và giá niêm yết lớn hơn 1.000 hoặc các sản phẩm có id thương hiệu là 1.
Để có được sản phẩm có id thương hiệu là 1 hoặc 2 và giá niêm yết lớn hơn 1.000, bạn sử dụng dấu ngoặc đơn như sau:
SELECT
*
FROM
production.products
WHERE
(brand_id = 1 OR brand_id = 2) AND
list_price > 1000
ORDER BY
brand_id;
Đây là kết quả:
Trong hướng dẫn này, bạn đã học cách sử dụng toán tử AND
trong SQL Server để kết hợp hai biểu thức Boolean.