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_expressionend_expression ở giữa các từ khóa BETWEENAND. Các biểu thức start_expression, end_expressionexpression để 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 BETWEENNULL, 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.

Bảng Products trong cơ sở dữ liệu mẫu trong SQL Server

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ả:

Sử dụng toán tử BETWEEN với số trong SQL Server

Để 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ử NOT BETWEEN với số trong SQL Server

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.

Bảng Orders trong cơ sở dữ liệu mẫu trong SQL Server

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ả:

Sử dụng toán tử BETWEEN với ngày trong SQL Server

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.

SQL Server
Bài Viết Liên Quan:
INTERSECT trong SQL Server
Trung Nguyen 22/11/2020
INTERSECT trong SQL Server

Tìm hiểu cách sử dụng toán tử INTERSECT trong SQL Server để trả về phần giao nhau của các tập kết quả của hai truy vấn.

EXCEPT trong SQL Server
Trung Nguyen 22/11/2020
EXCEPT trong SQL Server

Tìm hiểu cách sử dụng EXCEPT trong SQL Server để loại trừ tập kết quả của một truy vấn ra khỏi tập kết quả của một truy vấn khác.

SQL Server: Hướng dẫn subquery trong SQL Server từ A-Z
Trung Nguyen 22/11/2020
SQL Server: Hướng dẫn subquery trong SQL Server từ A-Z

Tìm hiểu về subquery, toán tử EXISTS, ANY, ALL trong SQL Server và cách sử dụng truy vấn con để truy vấn dữ liệu.

UNION trong SQL Server
Trung Nguyen 22/11/2020
UNION trong SQL Server

Tìm hiểu cách sử dụng UNION trong SQL Server để kết hợp kết quả của hai hoặc nhiều truy vấn thành một tập kết quả duy nhất.