有没有比when/then语句更有效的SQL排序方式,使得结果按照where语句的顺序排列?

问题描述 投票:0回答:1

我目前正在订购大量整数 ID,如下所示:

when x = a then 1,
when x = b then 2,
...
when x = i then n, for large n

我尝试通过 CHARINDEX 订购,然后将我需要的内容转换为字符:

ORDER BY CHARINDEX(CAST(credit_app.credit_app_id AS CHAR),

后跟与我的 where 语句中相同的 ID 列表。 这与我的 where 语句的顺序不同。

有谁知道一种更有效/简洁的方法来按照与 where 语句中出现的术语相同的顺序生成结果,而不是一行又一行的 where/then 语句。

sql sql-server sql-order-by
1个回答
0
投票

有谁知道一种更有效/简洁的方法来按照与术语出现在where中相同的顺序生成结果

是的。 为订单制作一个表,然后加入到表中。现在您可以按表中的值进行订购。

如果您无法修改架构,您仍然可以通过 Table-value 构造函数

VALUES()
子句来完成此操作。

© www.soinside.com 2019 - 2024. All rights reserved.