在本教學中,將學習如何使用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運算符來形成針對一系列值進行測試的條件。
