BETWEEN 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ử BETWEEN
trong SQL Server để chỉ định một phạm vi cần kiểm tra.
Tổng quan về toán tử BETWEEN trong SQL Server
Toán tử BETWEEN
trong SQL Server là một toán tử logic cho phép bạn chỉ định một phạm vi để kiểm tra.
Sau đây minh họa cú pháp của toán tử BETWEEN
:
column | expression BETWEEN start_expression AND end_expression
Trong cú pháp này:
- Đầu tiên, chỉ định cột hoặc biểu thức để kiểm tra.
- Thứ hai, đặt các biểu thức
start_expression
vàend_expression
ở giữa các từ khóaBETWEEN
vàAND
. Các biểu thứcstart_expression
,end_expression
vàexpression
để kiểm tra phải có cùng kiểu dữ liệu.
Toán tử BETWEEN
trả về TRUE
nếu biểu thức để đánh giá lớn hơn hoặc bằng giá trị của start_expression
và nhỏ hơn hoặc bằng với giá trị của end_expression
.
Bạn có thể sử dụng lớn hơn hoặc bằng (>=) và nhỏ hơn hoặc bằng (<=) kết hợp toán tử logic AND
để thay thế toán tử BETWEEN
như sau:
column | expression <= end_expression AND column | expression >= start_expression
Điều kiện sử dụng toán tử BETWEEN
dễ đọc hơn nhiều so với điều kiện sử dụng toán tử so sánh >=, <= và toán tử logic AND
.
Để phủ nhận kết quả của toán tử BETWEEN
, bạn sử dụng toán tử NOT BETWEEN
như sau:
column | expression NOT BETWEEN start_expression AND end_expresion
Toán tử NOT BETWEEN
trả về TRUE
nếu giá trị trong cột hoặc biểu thức nhỏ hơn giá trị của start_expression
và lớn hơn giá trị của end_expression
. Nó tương đương với điều kiện sau:
column | expression < start_expression AND column | expression > end_expression
Lưu ý rằng nếu bất kỳ đầu vào cho toán tử BETWEEN
hoặc NOT BETWEEN
là NULL
, thì kết quả là UNKNOWN
.
Ví dụ về toán tử BETWEEN trong SQL Server
Chúng ta sẽ xem một số ví dụ về việc sử dụng toán tử BETWEEN
để hiểu cách thức hoạt động của nó.
Sử dụng toán tử BETWEEN với số 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 ví dụ này.
Truy vấn sau đây tìm kiếm các sản phẩm có giá niêm yết nằm trong khoảng từ 149,99 đến 199,99:
SELECT
product_id,
product_name,
list_price
FROM
production.products
WHERE
list_price BETWEEN 149.99 AND 199.99
ORDER BY
list_price;
Đây là kết quả:
Để có được các sản phẩm có giá niêm yết nằm ngoài khoảng 149,99 và 199,99, bạn sử dụng toán tử NOT BETWEEN
như sau:
SELECT
product_id,
product_name,
list_price
FROM
production.products
WHERE
list_price NOT BETWEEN 149.99 AND 199.99
ORDER BY
list_price;
Đây là kết quả:
Sử dụng toán tử BETWEEN với ngày trong SQL Server
Chúng tôi sẽ sử dụng bảng orders
từ cơ sở dữ liệu mẫu để làm ví dụ minh họa cho ví dụ này.
Truy vấn sau đây tìm kiếm các đơn đặt hàng mà khách hàng đặt từ ngày 15/01/2017
đến ngày 17/01/2017
:
SELECT
order_id,
customer_id,
order_date,
order_status
FROM
sales.orders
WHERE
order_date BETWEEN '20170115' AND '20170117'
ORDER BY
order_date;
Đây là kết quả:
Lưu ý rằng để chỉ định hằng số ngày, bạn sử dụng định dạng ‘ YYYYMMDD
‘ trong đó:
YYYY
là năm có 4 chữ số, ví dụ: 2017.MM
là tháng có 2 chữ số, ví dụ: 01.DD
là ngày có 2 chữ số, ví dụ: 15.
Trong hướng dẫn này, bạn đã học cách sử dụng toán tử BETWEEN
trong SQL Server để tạo thành một điều kiện kiểm tra một cột hoặc biểu thức nằm trong một phạm vi.