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连接表