日期:2014-05-16  浏览次数:20523 次

Oracle Order By 排序问题
  最近在一个应用中,发现报表分页后丢失记录,但是记录总数是一样的。经过仔细检查SQL确认语句正确,而且如果不分页的话出来的数据就是正确的。怀疑Oracle的order by 算法是不稳定排序算法。
  经过测试,发现确实如此。如果排序的列存在大量相同记录,而且没有索引的话,每次执行相同语句得到的记录排序是不确定的(其实Oracle相关文档里面有提及)。
  在排序中增加主键或者rowid,问题解决。