在本教程中,将学习如何使用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
运算符来形成针对一系列值进行测试的条件。