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.



Bài viết liên quan:

Cách sử dụng mệnh đề HAVING trong SQL Server để lọc các nhóm dựa trên các điều kiện được chỉ định.

Tìm hiểu mọi thứ cần biết về trigger trong SQL Server giúp bạn sử dụng trigger hiệu quả nhất.

Tìm hiểu mọi thứ bạn cần biết về function trong SQL Server: bao gồm hàm vô hướng và hàm bảng.