我想尝试按特定顺序选择一组特定的数字,以用于循环。
SELECT ID
FROM filter
WHERE id in (87, 97, 117, 52, 240, 76, 141, 137, 157, 255, 186, 196, 133,
175, 153, 224, 59, 205, 65, 47, 105, 80, 113, 293, 161, 145,
192, 149, 231, 91, 101, 109, 215, 121, 125, 64, 41, 291, 367,
388, 391, 462, 467)
Run Code Online (Sandbox Code Playgroud)
这样做会返回按 ID 排序的结果,而不是我指定的顺序。在大多数其他类似问题中,首选答案是对特定条目使用 CASE,但如何按预定顺序选择数百条记录呢?
如果您有数百个项目,则使用派生表,例如:
select f.id
from filter f join
(values(1, 87), (2, 97), (3, 117), . . .) as v(ord, id)
on f.id = v.id
order by ord;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |