• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Oracle分页查询排序数据重复问题

mysql 搞代码 4年前 (2022-01-09) 25次浏览 已收录 0个评论

在项目开发过程中大量的使用了分页查询,当想要让数据按照日期排序时,出现了很多重复的数据出现。 造成这一问题出现的原因是本文来源gaodai$ma#com搞$代*码*网(:在数据中,日期的值不是唯一的。我们知道 Oracle的分页查询是没有进行任何排序操作的,Oracle是顺序的从数据块中读取符合条件的数

  在项目开发过程中大量的使用了分页查询,当想要让数据按照日期排序时,出现了很多重复的数据出现。 造成这一问题出现的原因是:在数据中,日期的值不是唯一的。我们知道

  Oracle的分页查询是没有进行任何排序操作的,Oracle是顺序的从数据块中读取符合条件的数据返回到客户端。而Oracle的排序算法不具有稳定性,,也就是说,对于键值相等的

  数据,这种算法完成排序后,不保证这些键值相等的数据保持排序前的顺序。

  解决这一问题的方法就是在后边增加一个唯一性列,比如主键,问题解决。

  select * from

  (

  select a.*, rownum rn from

  ( select * from user u order by u.createdate desc, u.id desc ) a

  where rownum <=20

  ) b

  where b.rn >=0


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Oracle分页查询排序数据重复问题

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址