经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Oracle » 查看文章
oracle中order by造成分页错误
来源:cnblogs  作者:夜雨听风~  时间:2019/4/30 8:43:25  对本文有异议

问题:今天在工作中,在service中调用分页查询列表接口的时候,返回的到页面的数据中总是存在缺失的数据,还有重复的数据。

分析:select * from (select ROWNUM rn,t.* from (select * from student order by class) t where ROWNUM <![CDATA[<]]>#{1.endIndex}) where rn <![CDATA[>=]]>#{1.startIndex}

当endIndex为3和为5的时候ROWNUM发生了变化

id

student

class

rownum

1

zhao

2

1

2

qian

2

2

3

li

2

3

 

id

stuent

class

rownum

1

zhao

2

1

3

li

2

2

4

song

2

3

2

qian

2

4

5

yang

2

5

在上表中qian 和li 的rownum发生了变化

总结:oracle分页语句中:

1 不存在order by 则系统根据rowid来排序

2 若存在order by 则order by 后面的限制的列必须要能确定唯一,或者最小粒度的列能确定唯一(如id列)如上class都相同,则可以加上

order by class,id   或者  order by class,rowid

原文链接:http://www.cnblogs.com/songzhen/p/10793186.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号