有条件的条件可以保留订单吗?
我在SO上找到了this question,但在他的例子中,OP已经有一个排序的“IN”子句.
我的情况是不同的,’IN’子句是随机的
这样的东西
SELECT SomeField,OtherField FROM TestResult WHERE TestResult.SomeField IN (45,2,445,12,789)
我想在(45,789)订单中检索结果.我使用的是Oracle数据库.也许在sql中有一个属性我可以使用条件子句来指定以保持子句的顺序.
解决方法
除非您使用ORDER BY子句,否则将不会有可靠的排序
SELECT SomeField,789) order by case TestResult.SomeField when 45 then 1 when 2 then 2 when 445 then 3 ... end
SELECT SomeField,OtherField FROM TestResult WHERE TestResult.SomeField = 4 union all SELECT SomeField,OtherField FROM TestResult WHERE TestResult.SomeField = 2 union all ...
我会相信以前的方法更多,它可能会表现更好.