假设有一个包含列的表:Id(主键),myTime,myName
然后执行查询:
select * from mytable order by myTime
但是myTime中有几个具有相同值的条目。使用哪个订单来安排结果?我在几台机器上试过这个例子,结果不同。具有相同myTime值的结果根据机器的不同排序(尽管两台机器使用相同版本的Oracle DDBB 10g)。
感谢。
答案 0 :(得分:1)
顺序将取决于表的访问方法,可能还有排序算法,但总的来说(并不总是,我认为)你会看到隐含的排序顺序是rowid如果是index已用于提供排序顺序。如果使用完整扫描和排序,那么我不想猜测。
如果需要确定性排序顺序,请按主键或唯一键添加订单。在您有应用程序分页的某些情况下,ROWID的辅助排序顺序可能会有所帮助。