我是否知道有没有解决方案可以在没有Oracle订购的情况下获得结果?这是因为当我按如下方式执行查询时,它似乎会自动帮助我按ID字段对其进行排序.
SELECT ID FROM USER WHERE ID IN (5004, 5003, 5005, 5002, 5008);
Actual results Expected results
---5002 ---5004
---5003 ---5003
---5004 ---5005
---5005 ---5002
---5008 ---5008
Run Code Online (Sandbox Code Playgroud)
百万,谢谢,如果你们有这方面的解决方案.
这是我过去看到过的一种方式INSTR:
SELECT *
FROM YourTable
WHERE ID IN (5004, 5003, 5005, 5002, 5008)
ORDER BY INSTR ('5004,5003,5005,5002,5008', id)
Run Code Online (Sandbox Code Playgroud)
我也看到过这样的用法CASE:
ORDER BY
CASE ID
WHEN 5004 THEN 1
WHEN 5003 THEN 2
WHEN 5005 THEN 3
WHEN 5002 THEN 4
WHEN 5008 THEN 5
END
Run Code Online (Sandbox Code Playgroud)
SELECT除非您给出一个子句,否则语句将以不可预测的顺序返回其结果集的行ORDER BY.
某些DBMS产品给出了其结果集处于可预测顺序的错觉.但如果你依赖它,你一定会失望.
| 归档时间: |
|
| 查看次数: |
287 次 |
| 最近记录: |