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

ProductIDProductNameSupplierIDCategoryIDUnitPrice
1Chais1110 boxes x 20 bags18
2Chang1124 – 12 oz bottles19
3Aniseed Syrup1212 – 550 ml bottles10
4Chef Anton’s Cajun Seasoning1248 – 6 oz jars22
5Chef Anton’s Gumbo Mix1236 boxes21.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”:

OrderIDCustomerIDEmployeeIDOrderDateShipperID
102489057/4/19963
102498167/5/19961
102503447/8/19962
102518437/9/19961
102527647/10/19962

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.

Viết một bình luận