我正在写一个简单的声明。
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之间的关系吗?如果您尝试执行此操作,则会返回一个空数据集。
答案 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