在 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, . . .);