SQL Server Between運算符

在本教學中,將學習如何使用SQL Server BETWEEN運算符指定要測試的範圍。

SQL Server BETWEEN運算符簡介

BETWEEN運算符是一個邏輯運算符,用於指定要測試值的範圍。

以下是BETWEEN運算符的語法:

column | expression BETWEEN start_expression AND end_expression

在上面語法中,

  • column | expression - 指定要測試的列或運算式。
  • start_expressionend_expression放在BETWEENAND關鍵字之間。 start_expressionend_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

請注意,如果BETWEENNOT BETWEEN的任何輸入為NULL,則結果為UNKNOWN

SQL Server BETWEEN示例

讓我們舉一些使用BETWEEN運算符的例子,以瞭解它是如何工作的。

A. SQL Server BETWEEN兩個數字示例

我們將使用示例資料庫中的products表進行演示,表的結構如下:

以下查詢查找價格介於149.99199.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.99199.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',其中YYYY4位數年份,例如:2019MM2位數月份,例如:01DD2位數日,例如15

在本教學中,學習了如何使用SQL Server BETWEEN運算符來形成針對一系列值進行測試的條件。


上一篇: SQL Server數據查詢 下一篇: SQL Server連接表