如何更改 Oracle 数据库中行的顺序? (订购方式不是一个选项)

How can I change the order of the rows in an Oracle Database? (Order By not an option)

如何重新排序 oracle sql 数据库中的行?我正在使用第 3 方数据库驱动的软件,不幸的是我无法更改调用(或者我只是添加一个顺序),但我可以更改数据库中行的顺序吗?

免责声明:我知道我永远不应该依赖原始数据库顺序,如果它发生变化我理解,但是可以这样做吗?

谢谢!

你不能。如果查询未指定 ORDER BY,则返回行的顺序未定义。

如果您愿意接受低于 100% 的解决方案,您可以尝试将数据移动到临时 table,截断 table,然后将数据重新插入您希望它出现的顺序。如果查询正在执行 table 扫描或某种类型的索引扫描并且没有执行任何复杂的操作(如连接),则行可能会按照它们在 [=15= 中的物理存储顺序返回].当然,不能保证,但它可能在大多数情况下都有效。