gpt4 book ai didi

sql - 从 'IN' 子句保持顺序

转载 作者:行者123 更新时间:2023-12-03 12:42:34 25 4
gpt4 key购买 nike

是否可以保持“IN”条件子句的顺序?

我找到了 this question在 SO 上,但在他的示例中,OP 已经有一个排序的“IN”子句。

我的情况不同,“IN”子句的顺序是随机的
像这样的事情:

SELECT SomeField,OtherField
FROM TestResult
WHERE TestResult.SomeField IN (45,2,445,12,789)

我想按 (45,2,445,12,789) 顺序检索结果。我正在使用 Oracle 数据库。也许 SQL 中有一个属性可以与条件子句一起使用,以指定保持子句的顺序。

最佳答案

除非您使用 ORDER BY 子句,否则不会有可靠的排序。

SELECT SomeField,OtherField
FROM TestResult
WHERE TestResult.SomeField IN (45,2,445,12,789)
order by case TestResult.SomeField
when 45 then 1
when 2 then 2
when 445 then 3
...
end

您可以将查询拆分为 5 个查询并合并在一起...
SELECT SomeField,OtherField
FROM TestResult
WHERE TestResult.SomeField = 4
union all
SELECT SomeField,OtherField
FROM TestResult
WHERE TestResult.SomeField = 2
union all
...

我更相信前一种方法,它可能会表现得更好。

关于sql - 从 'IN' 子句保持顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14139931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com