Sql server 语句之间的T-SQL

Sql server 语句之间的T-SQL,sql-server,tsql,sql-server-2008,between,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之间写吗?如果您尝试执行此操作,则将返回一个空数据集。也许某个范围适合您 IN (4,3,2,

我正在写一个简单的中间陈述

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之间写吗?如果您尝试执行此操作,则将返回一个空数据集。

也许某个范围适合您

IN (4,3,2,1)
另一个想法,为什么不使用:

WHERE mid < 4 and mid > 1
其中mid<4和mid>1

WHERE mid!>4月中旬1.

也许有一个范围适合你

IN (4,3,2,1)
另一个想法,为什么不使用:

WHERE mid < 4 and mid > 1
其中mid<4和mid>1

WHERE mid!>4月中旬1.

我想您只是想对结果进行排序

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)

我想你只是想公布你的结果

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)

我从不在之间使用
,只是使用
=
更简单、更灵活、更清晰

我会这样做:

create table temp(mid int)
insert into temp
values
(1),(2),(3),(4)
select * from temp
where mid<=4 and mid>=1  --same as where mid>=1 and mid<=4
--    ^^^^^^     ^^^^^^
drop table temp
create table temp(mid int)
插入temp
价值观
(1),(2),(3),(4)
从临时菜单中选择*

其中mid=1——与mid>=1和mid相同,我从不在
之间使用
,只是使用
=
更容易、更灵活、更清晰

我会这样做:

create table temp(mid int)
insert into temp
values
(1),(2),(3),(4)
select * from temp
where mid<=4 and mid>=1  --same as where mid>=1 and mid<=4
--    ^^^^^^     ^^^^^^
drop table temp
create table temp(mid int)
插入temp
价值观
(1),(2),(3),(4)
从临时菜单中选择*

其中mid=1——与mid>=1和mid相同,Y和Z之间的表达式
X
相当于
X>=Y和XY和Z之间的表达式
X
相当于
X>=Y和X,除了显式顺序之外,我永远不会依赖任何东西来返回特定顺序。DB2(似乎)不保证()中的
in
谓词的返回顺序。我的第一个答案是猜测他/她在寻找什么。我的第二个例子是给他/她一个备选答案来回答他的问题。任何符合标准的SQL数据库都需要ORDER BY将结果按特定顺序排列。为什么我在这里被否决?同样,我的第一个建议是猜测OP希望对结果进行排序。我的第二个建议是回答上面提到的问题,因此没有订单。除了明确的订单,我永远不会依赖任何东西来返回特定的订单。DB2(似乎)不保证()中的
in
谓词的返回顺序。我的第一个答案是猜测他/她在寻找什么。我的第二个例子是给他/她一个备选答案来回答他的问题。任何符合标准的SQL数据库都需要ORDER BY将结果按特定顺序排列。为什么我在这里被否决?同样,我的第一个建议是猜测OP希望对结果进行排序。我的第二个建议是回答前面提到的问题,因此没有命令。你说的“反向”是什么意思?首先声明“这输出1,2,3,4”。然后,您稍后会声明“如果您尝试执行此操作,那么将返回一个空数据集。”请更具体地说明正在发生的事情以及您想要的内容。相反的意思是颠倒顺序还是你想要“超出”4和1。我想你暗示得太多了。为什么要使用介于4和1之间的值(它应该正确地返回零个记录,因为从数学上讲,模拟为>=4是不可能的,您所说的“反向”是什么意思?首先您声明“此输出1,2,3,4”。然后您声明“如果您尝试执行此值,则将返回一个空数据集。”请更具体地说明发生了什么以及您想要什么。相反的意思是颠倒顺序,还是您想要“超出”4和1。我认为您暗示得太多了。为什么要使用4和1之间的值(这应该正确地返回零记录,因为数学上不可能模拟为>=4和