Categories SQL

Toán tử BETWEEN trong SQL

Toán tử BETWEEN chọn lựa các giá trị nằm trong một khoảng. Các giá trị có thể là số, văn bản hoặc ngày tháng.

Cú pháp SQL BETWEEN:

SELECT ten_cot (có thể chọn nhiều cột)
FROM ten_bang
WHERE ten_cot BETWEEN giatri1 AND giatri2;

Cơ sở dữ liệu Demo

Trong chương này, chúng ta sẽ sử dụng cơ sở dữ liệu mẫu Northwind.

Bên dưới là một lựa chọn từ bảng “Products”:

ProductID ProductName SupplierID CategoryID Unit Price
1 Chais 1 1 10 boxes x 20 bags 18
2 Chang 1 1 24 – 12 oz bottles 19
3 Aniseed Syrup 1 2 12 – 550 ml bottles 10
4 Chef Anton’s Cajun Seasoning 1 2 48 – 6 oz jars 22
5 Chef Anton’s Gumbo Mix 1 2 36 boxes 21.35

Ví dụ về toán tử BETWEEN

Câu lệnh SQL sau đây lựa chọn tất cả các sản phẩm với giá cả nằm trong khoảng từ 10 đến 20:

Ví dụ

SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20;

Ví dụ về toán tử NOT BETWEEN

Để hiển thị các sản phẩm nằm bên ngoài khoảng ở ví dụ trước, sử dụng NOT BETWEEN:

Ví dụ

SELECT * FROM Products
WHERE Price NOT BETWEEN 10 AND 20;

Ví dụ về toán tử BETWEEN với IN

Câu lệnh SQL sau lựa chọn tất cả các sản phẩm với giá nằm giữa 10 và 20, nhưng các sản phẩm có CategoryID là 1,2 hoặc 3 không được hiển thị:

Ví dụ

SELECT * FROM Products
WHERE (Price BETWEEN 10 AND 20)
AND NOT CategoryID IN (1,2,3);

Ví dụ về Toán tử BETWEEN với Text Value (văn bản)

Câu lệnh SQL sau đây lựa chọn tất cả các sản phẩm với ProductName bắt đầu với bất kỳ ký tự nào nằm giữa ‘C’ và ‘M’:

Ví dụ

SELECT * FROM Products
WHERE ProductName BETWEEN 'C' AND 'M';

Ví dụ về toán tử NOT BETWEEN với Text Value

Câu lệnh SQL sau đây lựa chọn tất cả các sản phẩm với ProductName bắt đầu với bất kỳ ký tự nào KHÔNG NẰM GIỮA ‘C’ và ‘M’:

Ví dụ

SELECT * FROM Products
WHERE ProductName NOT BETWEEN 'C' AND 'M';

Bảng mẫu

Bảng dưới đây lựa chọn từ bảng “Orders”:

OrderID CustomerID EmployeeID OrderDate ShipperID
10248 90 5 7/4/1996 3
10249 81 6 7/5/1996 1
10250 34 4 7/8/1996 2
10251 84 3 7/9/1996 1
10252 76 4 7/10/1996 2

Ví dụ về toán tử BETWEEN với Date Value

Câu lệnh SQL sau đây lựa chọn tất cả các đơn hàng có OderDate nằm trong khoảng tử ’04-July-1996′ và ’09-July-1996′:

Ví dụ

SELECT * FROM Orders
WHERE OrderDate BETWEEN #07/04/1996# AND #07/09/1996#;

Lưu ý  là toán tử BETWEEN có thể tạo ra nhiều kết quả khác nhau trong các cơ sở dữ liệu khác nhau!

Trong một số cơ sở dữ liệu, BETWEEN lựa chọn tất cả các trường nằm giữa và không bao gồm các giá trị kiểm tra.

Trong một số cơ sở dữ liệu khác, BETWEEN lựa chọn các trường nằm giữa và bao gồm luôn cả các giá trị kiểm tra.

Và trong một cơ sở dữ liệu khác, BETWEEN lựa chọn các trường nằm giữa các giá trị kiểm tra, tuy nhiên lại bao gồm giá trị kiểm tra đầu tiên nhưng không bao gồm giá trị kiểm tra thứ hai.

Vì vậy hãy kiếm tra cơ sở dữ liệu của bạn xử lý như thế nào với toán tử BETWEEN.

Back to Top