0

假设有一个包含列的表:Id(主键)、myTime、myName

然后执行查询:

select * from mytable order by myTime

但是在 myTime 中有几个具有相同值的条目。使用哪个顺序排列结果?我在几台机器上试过这个例子,结果不同。根据机器的不同,具有相同 myTime 值的结果排序不同(尽管两台机器都使用相同版本的 Oracle DDBB 10g)。

谢谢。

4

1 回答 1

1

顺序将取决于表的访问方法,可能还有排序算法,但通常(我认为并非总是如此)你会看到隐式排序顺序将是 rowid 如果索引已经用于提供排序顺序。如果使用完整扫描和排序,那么我不想猜测。

如果需要确定性排序顺序,请按主键或唯一键添加顺序。在您有一个分页的应用程序的某些情况下,ROWID 的二级排序顺序可能会有所帮助。

于 2013-03-05T10:10:48.433 回答