使用rownum分页查询

select * from (select t.*,rownum rn from (select b.name,b.age from tb_user b)t where rownum <=pageIndex * pageSize)where rn>(pageIndex -1)* pageSize

注意:pageIndex是分页查询下标,pageSize是分页查询大小。如查询第一页,每页大小为500的sql为

select * from (select t.*,rownum rn from (select b.name,b.age from tb_user b)t where rownum <=1 * 500)where rn>(1 -1)* 500

问题:oracle分页查询可能会导致数据重复

解决:可以用主键或者唯一索引排序,如果没有唯一索引,可以使用rowid进行排序
关于rowid,点击了解
oracle的rowid
如上sql可以写为

select * from (select t.*,rownum rn from (select b.name,b.age from tb_user b order by b.rowid asc)t where rownum <=1 * 500)where rn>(1 -1)* 500
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐