Bài trước, Gitiho đã hướng dẫn bạn cách tìm kiếm giá trị theo những điều kiện nhất định bằng câu lệnh Where kết hợp với các toán tử and, or, in, not in. Tuy nhiên, có một số trường hợp chúng ta cần tìm nhiều điều kiện liên tiếp nhau hoặc nằm là trong một khoảng nào đấy.
Thì lúc này nếu dùng AND bạn sẽ phải viết ra rất nhiều giá trị trong khoảng cần tìm ở câu lệnh. Do đó, chúng ta sẽ có toán tử BETWEEN trong SQL có thể rút ngắn độ dài câu lệnh và giúp bạn tiết kiệm nhiều thời gian truy vấn hơn. Cùng xem nhé.
BETWEEN là một toán tử trong SQL thường dùng để truy vấn các giá trị nằm trong khoảng nhất định. Bạn sẽ đưa ra 2 giá trị và BETWEEN sẽ giúp bạn tìm kiếm các kết quả nằm giữa hai giá trị mà bạn chỉ định, bao gồm cả hai giá trị này.
SELECT column_name
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
Trong đó:
Đầu tiên, chúng ta sẽ dùng câu lệnh SELECT trong SQL để lấy ra một đoạn dữ liệu thuộc bảng Sales trong Database như sau:
Yêu cầu 1: Trích xuất toàn bộ giao dịch bán hàng trong khoảng từ tháng 2 đến tháng 7 với toán tử BETWEEN.
Cách làm:
Dựa theo cấu trúc mẫu, chúng ta sẽ biến đổi câu lệnh như sau:
SELECT * FROM Sales
WHERE Month BETWEEN 2 AND 7
Nhấn chạy câu lệnh, chúng ta sẽ thu được kết quả 5077 bản ghi chứa doanh thu từ tháng 7 đến tháng 8.
Yêu cầu 2: Tìm toàn bộ giao dịch phát sinh trong tháng 7 và từ ngày 22 đến ngày 26.
Với yêu cầu này thì chúng ta có 2 điều kiện, một là giao dịch phát sinh trong tháng 7, hai là cụ thể trong khoảng ngày 22 đến 26. Chúng ta có cú pháp chứa toán tử AND để kết hợp nhiều điện kiện mà bắt buộc các điều kiện này phải đồng thời xảy ra:
SELECT * FROM Sales
WHERE (sales.Month=7) AND (Sale_Date BETWEEN 22 and 26)
Trong đó:
Nhấn chạy công thức và đây là thông tin mà chúng ta nhận được bao gồm 143 bản ghi thỏa mãn các điều kiện theo yêu cầu:
Yêu cầu 3: Tìm kiếm các giao dịch có ID khách hàng là 11356 trong khoảng từ tháng 6 đến tháng 10.
Tương tự với ví dụ số 2, chúng ta sẽ thay đổi 2 điều kiện trong cú pháp đó là Customer ID và số tháng là từ 6 đến 10 như sau:
SELECT * FROM Sales
WHERE (Customer ID=11356) AND (sales.Month BETWEEN 6 and 10)
Nhấn chạy công thức, chúng ta sẽ được 3 kết quả thỏa mãn các điều kiện của đề bài:
Yêu cầu 4: Tìm tất cả những bản ghi có Customer ID là 11356 và giá trị sale amount (số lượng bán hàng) với các điều kiện lần lượt là:
Chúng ta có câu lệnh như sau:
SELECT * FROM Sales
WHERE (CustomerID=11356) AND (sales>100)
Cho chạy công thức, chúng ta sẽ thu được 8 bản ghi như sau:
Tiếp theo, tương tự chúng ta sẽ có 2 công thức để truy xuất dữ liệu dựa trên 2 điều kiện còn lại:
SELECT * FROM Sales
WHERE (CustomerID=11356) AND (sales<1000)
Công thức này sẽ thu được 6 bản ghi bao gồm:
Và công thức cuối cùng:
SELECT * FROM Sales
WHERE (CustomerID=11356) AND (sales BETWEEN 100 AND 1000)
Kết quả thu về 4 bản ghi như mong muốn:
Trong 4 ví dụ trên, chúng ta có thể thấy nếu sử dụng câu lệnh BETWEEN sẽ giúp cho câu lệnh của chúng ta ngắn gọn và dễ nhìn hơn, thay vì sử dụng toán tử AND đối với các tìm kiếm nhiều điều kiện.
Để thành thạo câu lệnh BETWEEN nâng cao tìm kiếm theo khoảng và nhiều câu lệnh hữu ích khác trong SQL, bạn có thể tham khảo khóa học SQL cơ bản đến nâng cao sau tại Gitiho:
Ở phần trên chúng ta đã tìm kiếm các giá trị nằm trong khoảng nào đó bằng toán tử BETWEEN, vậy nếu như muốn tìm giá trị không thuộc một khoảng nhất định thì sao? Ngay sau đây, Gitiho sẽ giới thiệu tới bạn toán tử NOT BETWEEN để lọc các giá trị ngoài khoảng xác định.
Cú pháp NOT BETWEEN như sau:
SELECT column_name
FROM table_name
WHERE column_name NOT BETWEEN value1 AND value2;
Ví dụ: Tìm tất cả các giao dịch bán hàng không nằm trong khoảng tháng 6 đến tháng 11.
Chúng ta có công thức sau:
SELECT * FROM Sales
WHERE sales.Month NOT BETWEEN 6 AND 11
Nhấn chạy công thức, chúng ta có thể thấy toàn bộ các giao dịch không xuất hiện từ tháng 6 đến tháng 11 được hiển thị:
Trên đây là hướng dẫn sử dụng BETWEEN và NOT BETWEEN trong SQL, cùng một số ví dụ giúp bạn hiểu rõ hơn về cách sử dụng của toán tử này trong thực tế. Sau này khi thực hành nhiều, bạn sẽ có thể biết cách ghép nối nhiều câu lệnh với nhiều keyword lại với nhau hơn. Theo dõi để học thêm nhiều kiến thức bổ ích về truy vấn SQL nhé. Chúc bạn thành công!
Khóa học giúp bạn làm chủ ngôn ngữ truy vấn dữ liệu phổ biến SQL từ cơ bản đến nâng cao. Từ đó có thể tự tin xây dựng, truy vấn, và tối ưu hóa các cơ sở dữ liệu phức tạp, hỗ trợ phân tích, làm báo cáo và ra quyết định kinh doanh một cách hiệu quả.
Đăng ký học thử để trải nghiệm ngay hôm nay!