sql-server - sql : BETWEEN v1 AND v2

标签 sql-server between syntactic-sugar

SQL Server 上的 BETWEEN 查询中 v1 和 v2 的顺序是否存在差异?

SELECT *
  FROM table
 WHERE col BETWEEN v1 AND v2

目前,如果 v1 大于 v2,我不会得到任何结果。这是唯一的语法糖吗

col >= v1 AND col <= v2

或者它真的取了两者之间的所有值吗?根据我目前的观察,我认为这是第一种情况。

最佳答案

SQL Server 2008:

select 1 
where 5 between 1 and 7

1 个结果

select 1 
where 5 between 7 and 1

0 个结果

根据这些结果,以及 Postgre Docs我假设 ANSI 标准如下(尽管我找不到该文档)。

a between x and y
==
a >= x AND a <= y

更新:

SQL-92 规范说(引用):

"X BETWEEN Y AND Z" is equivalent to "X>=Y AND X<=Z"

关于sql-server - sql : BETWEEN v1 AND v2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1572840/

相关文章:

sql-server - SSIS - 再次出现内存不足错误

C# sql命令无法搜索总成本

mysql:介于不使用日期之间

javascript - Prototype 的 Ajax 功能的语法糖

sql - 为什么选择 TOP 1 . 。 。 ORDER BY 返回表中的第二行?

sql-server - 使用WITH将Oracle查询转换为T-SQL查询

Spring queryByExample 与范围之间

c# - C# 中的成员传递?

Python:分层切片

mysql - 为什么不能通过显式锁定查询语法获取谓词锁