Trong hướng dẫn này, bạn sẽ tìm hiểu cách sử dụng mệnh đề WHERE
trong SQL Server để lọc các bản ghi sẽ được trả về bởi một truy vấn.
Khi bạn sử dụng câu lệnh SELECT
để truy vấn dữ liệu trong một bảng, bạn sẽ nhận được tất cả các bản ghi của bảng đó, điều này là không cần thiết vì ứng dụng chỉ có thể xử lý một số lượng các bản ghi nhất định tại thời điểm đó.
Để lấy các bản ghi từ bảng thỏa mãn một hoặc nhiều điều kiện, bạn sử dụng mệnh đề WHERE
như sau:
SELECT
select_list
FROM
table_name
WHERE
search_condition;
Trong mệnh đề WHERE
, bạn chỉ định một điều kiện tìm kiếm để lọc các bản ghi được trả về bởi mệnh đề FROM
. Mệnh đề WHERE
chỉ trả về các bản ghi thỏa mãn điều kiện tìm kiếm (điều kiện tìm kiếm được đánh giá là TRUE
).
Điều kiện tìm kiếm là một biểu thức logic hoặc kết hợp nhiều biểu thức logic. Trong SQL, một biểu thức logic thường được gọi là một vị ngữ (predicate).
Lưu ý rằng SQL Server sử dụng logic ba giá trị khi đánh giá một biểu thức logic là TRUE
, FALSE
hoặc UNKNOWN
. Mệnh đề WHERE
sẽ không trả lại bất kỳ bản ghi nào có điều kiện tìm kiếm được đánh giá là FALSE
hoặc UNKNOWN
.
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 mệnh đề WHERE trong SQL Server.
Câu lệnh sau lấy tất cả các sản phẩm có id loại sản phẩm là 1:
SELECT
product_id,
product_name,
category_id,
model_year,
list_price
FROM
production.products
WHERE
category_id = 1
ORDER BY
list_price DESC;
Đây là kết quả:
Ví dụ sau đây trả về các sản phẩm đáp ứng hai điều kiện: mã loại sản phẩm là 1 và năm kiểu mẫu là 2018. Nó sử dụng toán tử logic AND
để kết hợp hai điều kiện.
SELECT
product_id,
product_name,
category_id,
model_year,
list_price
FROM
production.products
WHERE
category_id = 1 AND model_year = 2018
ORDER BY
list_price DESC;
Đây là kết quả:
Câu lệnh sau đây tìm kiếm các sản phẩm có giá niêm yết lớn hơn 300 và năm kiểu mẫu là 2018.
SELECT
product_id,
product_name,
category_id,
model_year,
list_price
FROM
production.products
WHERE
list_price > 300 AND model_year = 2018
ORDER BY
list_price DESC;
Đây là kết quả:
Truy vấn sau đây tìm kiếm các sản phẩm có giá niêm yết lớn hơn 3.000 hoặc năm kiểu mẫu là 2018. Bất kỳ sản phẩm nào đáp ứng một trong các điều kiện này đều được bao gồm trong tập kết quả.
SELECT
product_id,
product_name,
category_id,
model_year,
list_price
FROM
production.products
WHERE
list_price > 3000 OR model_year = 2018
ORDER BY
list_price DESC;
Đây là kết quả:
Lưu ý rằng toán tử OR
đã được sử dụng để kết hợp các biểu thức điều kiện.
Câu lệnh sau đây tìm kiếm các sản phẩm có giá niêm yết nằm trong khoảng từ 1.899 đến 1.999,99 sử dụng toán tử BETWEEN
:
SELECT
product_id,
product_name,
category_id,
model_year,
list_price
FROM
production.products
WHERE
list_price BETWEEN 1899.00 AND 1999.99
ORDER BY
list_price DESC;
Đây là kết quả:
Ví dụ sau sử dụng toán tử IN
để tìm các sản phẩm có giá niêm yết là 299,99 hoặc 466,99 hoặc 489,99.
SELECT
product_id,
product_name,
category_id,
model_year,
list_price
FROM
production.products
WHERE
list_price IN (299.99, 369.99, 489.99)
ORDER BY
list_price DESC;
Đây là kết quả:
Ví dụ sau sử dụng toán tử LIKE
để tìm các sản phẩm có tên chứa chuỗi Cruiser
:
SELECT
product_id,
product_name,
category_id,
model_year,
list_price
FROM
production.products
WHERE
product_name LIKE '%Cruiser%'
ORDER BY
list_price;
Đây là kết quả:
Trong hướng dẫn này, bạn đã học cách sử dụng mệnh đề WHERE
trong SQL Server để lọc các bản ghi dựa trên một hoặc nhiều điều kiện.
Bạn có thể vui lòng tắt trình chặn quảng cáo ❤️ để hỗ trợ chúng tôi duy trì hoạt động của trang web.
Trong hướng dẫn này, bạn sẽ tìm hiểu về GUID trong SQL Server và cách sử dụng hàm NEWID() để tạo giá trị GUID.
Trong hướng dẫn này, bạn sẽ học cách sử dụng kiểu dữ liệu DATETIMEOFFSET trong SQL Server để thao tác datetime với múi giờ.
Trong hướng dẫn này, bạn sẽ học cách lưu trữ thời gian trong ngày trong cơ sở dữ liệu bằng cách sử dụng kiểu dữ liệu TIME trong SQL Server.
Trong hướng dẫn này, bạn sẽ học cách sử dụng kiểu dữ liệu DATE trong SQL Server để lưu trữ dữ liệu ngày tháng trong một bảng.