在 Microsoft SQL 服务器上使用 IN 时对行进行排序
Ordering rows when using IN on Microsoft SQL Server
我正在尝试从 ID 列表中获取一些 SQL 结果。我已经按照我需要的方式对我的 ID 进行了排序,但是当我从查询中提取结果时,ID 并没有按照我需要的方式进行排序。
我需要按我在 IN
上发送的方式订购 idParada
。我听说 FIELD 在 mysql 上有一个订单,但它不适用于 SQL 服务器。
使用案例获取您的特定订单:
select * from Paradas
where iparada in (21,22 ...)
order by case iparada when 21 then 1
when 22 then 2
...
end
假设您有 SQL Server 2012+,请使用 choose()
:
select *
from Paradas
where iparada in (21, 22, . . . )
order by choose(iparada, 21, 22, . . .);
我正在尝试从 ID 列表中获取一些 SQL 结果。我已经按照我需要的方式对我的 ID 进行了排序,但是当我从查询中提取结果时,ID 并没有按照我需要的方式进行排序。
我需要按我在 IN
上发送的方式订购 idParada
。我听说 FIELD 在 mysql 上有一个订单,但它不适用于 SQL 服务器。
使用案例获取您的特定订单:
select * from Paradas
where iparada in (21,22 ...)
order by case iparada when 21 then 1
when 22 then 2
...
end
假设您有 SQL Server 2012+,请使用 choose()
:
select *
from Paradas
where iparada in (21, 22, . . . )
order by choose(iparada, 21, 22, . . .);