T-SQL Between语句

时间:2011-08-10 17:31:58

标签: sql-server tsql sql-server-2008 between

我正在写一个简单的声明。

create table temp(mid int)

insert into temp
values
(1),(2),(3),(4)

select * from temp
where mid between 4 and 1

drop table temp

输出1,2,3,4

但是我想反向使用这个语句(我在一个更难的问题中使用它作为一个简单的例子)。有什么办法可以写下4和1之间的关系吗?如果您尝试执行此操作,则会返回一个空数据集。

4 个答案:

答案 0 :(得分:2)

我想你只是想订购你的结果。

SELECT mid
FROM temp
WHERE mid BETWEEN 1 AND 4
ORDER BY mid DESC

或者,您可以使用in函数:

SELECT mid
FROM temp
WHERE mid IN(4, 3, 2, 1)

答案 1 :(得分:1)

也许一个范围对你有用。

IN (4,3,2,1)

另一个想法,为什么不使用:

WHERE mid < 4 and mid > 1

WHERE mid !> 4 and mid !< 1

答案 2 :(得分:1)

我没有使用BETWEEN ,只是使用<<=,{{1}更简单,更灵活,更清晰}和>

我会这样做:

>=

答案 3 :(得分:0)

表达式X BETWEEN Y AND Z相当于X >= Y AND X <= Z。内置的假设是Y <= Z,我不相信没有任何方法可以在没有这个假设的情况下使BETWEEN工作。 您可以将其用作解决方法:

...
WHERE X BETWEEN Y AND Z 
   OR X BETWEEN Z AND Y