在本教學中,將學習如何使用SQL Server BETWEEN
運算符指定要測試的範圍。
SQL Server BETWEEN運算符簡介
BETWEEN
運算符是一個邏輯運算符,用於指定要測試值的範圍。
以下是BETWEEN
運算符的語法:
column | expression BETWEEN start_expression AND end_expression
在上面語法中,
column | expression
- 指定要測試的列或運算式。- 將
start_expression
和end_expression
放在BETWEEN
和AND
關鍵字之間。start_expression
,end_expression
和要測試的運算式必須具有相同的數據類型。
如果要測試的運算式大於或等於start_expression
的值且小於或等於end_expression
的值,則BETWEEN
運算符返回TRUE
。
可以使用大於或等於(>=
)且小於或等於(<=
)來替換BETWEEN
運算符,如下所示:
column | expression <= end_expression AND column | expression >= start_expression
使用BETWEEN
運算符的條件比使用比較運算符>=
,<=
和邏輯運算符AND的條件更具可讀性。
要取消BETWEEN
運算符的結果,請使用NOT BETWEEN
運算符,如下所示:
column | expression NOT BETWEEN start_expression AND end_expresion
如果列或運算式中的值小於start_expression
的值且大於end_expression
的值,則NOT BETWEEN
將返回TRUE
。 它相當於以下條件:
column | expression < start_expression AND column | expression > end_expression
請注意,如果BETWEEN
或NOT BETWEEN
的任何輸入為NULL
,則結果為UNKNOWN
。
SQL Server BETWEEN示例
讓我們舉一些使用BETWEEN
運算符的例子,以瞭解它是如何工作的。
A. SQL Server BETWEEN兩個數字示例
我們將使用示例資料庫中的products
表進行演示,表的結構如下:
以下查詢查找價格介於149.99
和199.99
之間的產品:
SELECT
product_id,
product_name,
list_price
FROM
production.products
WHERE
list_price BETWEEN 149.99 AND 199.99
ORDER BY
list_price;
執行上面查詢語句,得到以下結果:
要獲得價格不在149.99
和199.99
範圍內的產品,請使用NOT BETWEEN
運算符,如下所示:
SELECT
product_id,
product_name,
list_price
FROM
production.products
WHERE
list_price NOT BETWEEN 149.99 AND 199.99
ORDER BY
list_price;
執行上面查詢語句,得到以下結果:
B. SQL Server BETWEEN兩個日期示例
請考慮以下orders
表,結構如下所示:
以下查詢查找客戶在2017年1月15日至2017年1月17日期間下的訂單:
SELECT
order_id,
customer_id,
order_date,
order_status
FROM
sales.orders
WHERE
order_date BETWEEN '20170115' AND '20170117'
ORDER BY
order_date;
執行上面查詢語句,得到以下結果:
請注意,要指定日期常量,請使用格式:'YYYYMMDD'
,其中YYYY
是4
位數年份,例如:2019
,MM
是2
位數月份,例如:01
,DD
是2
位數日,例如15
。
在本教學中,學習了如何使用SQL Server BETWEEN
運算符來形成針對一系列值進行測試的條件。