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.