SQL BETWEEN - Lọc kết quả trong khoản

2022-11-02 13:51:53

Toán tử BETWEEN được sử dụng khi tiêu chí lọc là một phạm vi liên tục với giá trị lớn nhất và giá trị nhỏ nhất. Nó luôn được sử dụng trong mệnh đề WHERE.

Syntax

Cú pháp cho toán tử BETWEEN như sau:

SELECT "column_name"
FROM "table_name"
WHERE "column_name" BETWEEN 'max_value' AND 'min_value';

Thao tác này sẽ chọn tất cả các hàng có cột có giá trị từ 'min_value' và 'max_value.' Xin lưu ý thứ tự: 'min_value' cần được liệt kê trước AND và 'max_value.' cần được liệt kê sau. Nếu thứ tự được chuyển đổi, câu lệnh SQL vẫn hợp lệ, nhưng sẽ không cho kết quả mong muốn.

Các ví dụ

Chúng tôi sử dụng bảng sau cho các ví dụ của chúng tôi.

Table Store_Information

 Store_Name  Sales  Txn_Date 
 Los Angeles  1500  Jan-05-1999 
 San Diego  250  Jan-07-1999 
 San Francisco  300  Jan-08-1999 
 Boston  700  Jan-08-1999 

Example 1

Để chọn xem tất cả thông tin bán hàng từ ngày 6 tháng 1 năm 1999 đến ngày 10 tháng 1 năm 1999, chúng tôi nhập,

SELECT *
FROM Store_Information
WHERE Txn_Date BETWEEN 'Jan-06-1999' AND 'Jan-10-1999';

Lưu ý rằng ngày tháng có thể được lưu trữ ở các định dạng khác nhau trong các cơ sở dữ liệu khác nhau. Hướng dẫn này chỉ cần chọn một trong các định dạng.

Kết quả:

Store_Name Sales Txn_Date
San Diego 250 Jan-07-1999
San Francisco 300 Jan-08-1999
Boston 700 Jan-08-1999

BETWEEN là một toán tử bao hàm, có nghĩa là 'giá trị1' và 'giá trị2' được bao gồm trong kết quả. Nếu chúng ta muốn loại trừ 'value1' và 'value2' nhưng bao gồm mọi thứ ở giữa, chúng ta cần thay đổi truy vấn thành như sau:

SELECT "column_name"
FROM "table_name"
WHERE ("column_name" > 'value1')
AND ("column_name" < 'value2');

Ví dụ 2

Chúng ta cũng có thể sử dụng toán tử BETWEEN để loại trừ một phạm vi giá trị bằng cách thêm NOT vào trước BETWEEN . Trong ví dụ trên, nếu chúng ta muốn hiển thị tất cả các hàng có cột Bán hàng không nằm trong khoảng từ 280 đến 1000, chúng ta sẽ sử dụng SQL sau:

SELECT *
FROM Store_Information
WHERE Sales NOT BETWEEN 280 and 1000;

Kết quả:

Store_Name Sales Txn_Date
Los Angeles 1500 Jan-05-1999
San Diego 250 Jan-07-1999

Bài tập

Đối với các bài tập này, giả sử chúng ta có một bảng có tên là User_Sales với dữ liệu sau:

Bảng User_Sales

 First_Name  Last_Name  Birth_Date  Gender  Join_Date  Total_Sales 
 Sophie  Lee  Jan-05-1960  F  Apr-05-2015  500 
 Richard  Brown  Jan-07-1975  M  Apr-05-2015  200 
 Jamal  Santo  Oct-08-1983  M  Apr-09-2015  350 
 Casey  Healy  Sep-20-1969  M  Apr-09-2015  80 
 Jill  Wilkes  Nov-20-1979  F  Apr-15-2015  210 

1. Câu lệnh SQL nào sau đây là hợp lệ? (There can be more than one answer)
a) SELECT * FROM User_Sales WHERE Total_Sales BETWEEN 200 OR 300;
b) SELECT * FROM User_Sales WHERE Total_Sales IS BETWEEN 200 OR 300;
c) SELECT * FROM User_Sales WHERE Total_Sales IS BETWEEN 200 AND 300;
d) SELECT * FROM User_Sales WHERE Total_Sales BETWEEN 200 AND 300;

2. How many records will be returned by the following query?
SELECT * FROM User_Sales WHERE Join_Date BETWEEN 'Apr-05-2015' AND 'Apr-10-2015';

3. Có bao nhiêu bản ghi sẽ được trả về bởi truy vấn sau?
SELECT * FROM User_Sales WHERE Gender = 'F' OR Total_Sales BETWEEN 50 AND 100;



Xem thêm:


Chia sẻ: