(NOT) BETWEEN 運算子 (SQL (NOT) BETWEEN Operator)
不同於 IN 運算子是依不連續的值作為 WHERE 查詢子句的篩選條件,BETWEEN 則是用來限定依某範圍內連續的值作為條件來搜尋資料表中的特定資料。
作為查詢範圍條件的欄位型態可為數值、日期或字串,其中字串是依照字母排列順序來界定範圍。
BETWEEN 語法 (SQL BETWEEN Syntax)
SELECT table_column1, table_column2, table_column3...
FROM table_name
WHERE column_name
BETWEEN value1 AND value2;
BETWEEN 的頭和尾的值都會被包含進去。
BETWEEN 運算子查詢用法 (Example)
假設我們想從下面的 customers 資料表中查詢訂單數量介於 1000~4000 的顧客資料:
C_Id | Name | City | Address | Phone | Quantity |
---|---|---|---|---|---|
1 | 張一 | 台北市 | XX路100號 | 02-12345678 | 1000 |
2 | 王二 | 新竹縣 | YY路200號 | 03-12345678 | 3000 |
3 | 李三 | 高雄縣 | ZZ路300號 | 07-12345678 | 5000 |
我們可以這樣作 SQL 查詢:
SELECT * FROM customers
WHERE Quantity
BETWEEN 1000 AND 4000;
查詢後返回的結果會是:
C_Id | Name | City | Address | Phone | Quantity |
---|---|---|---|---|---|
1 | 張一 | 台北市 | XX路100號 | 02-12345678 | 1000 |
2 | 王二 | 新竹縣 | YY路200號 | 03-12345678 | 3000 |
NOT BETWEEN
相反的,NOT BETWEEN 就是不包含在這範圍裡的的資料我通通要了,如上例多加上 NOT:
SELECT * FROM customers
WHERE Quantity
NOT BETWEEN 1000 AND 4000;
查詢後返回的結果會是:
C_Id | Name | City | Address | Phone | Quantity |
---|---|---|---|---|---|
3 | 李三 | 高雄縣 | ZZ路300號 | 07-12345678 | 5000 |