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/