首页 > 数据库技术 > 详细

mybatis oracle分页sql

时间:2014-09-15 18:00:39      阅读:336      评论:0      收藏:0      [点我收藏+]

以前在写oracle分页时的sql是:

(1)

select *
    from  (select a.*, rownum rnum
     from (select id, data
     from t  order by id, rowid) a
    )
   where rnum >= 148 and rnum<=151;


或者

(2)
select *
    from  (select a.*, rownum rnum
     from (select id, data
     from t  order by id, rowid) a
    where rownum <= 151 )
   where rnum >= 148;

最近在开发中同事说第(1)种效率不好,而第(2)种在只有唯一值(列)的时间才能正常排序,以前一直用第(1)种,今天同事找到如下的方式,解决了 第(2)种唯一值(列)排序的问题,如下:

(3)

select *
    from  (select a.*, rownum rnum
     from (select id, data
     from t  order by id, rowid) a
    where rownum <= 151 )
   where rnum >= 148;

PS:主要是添加了rowid这个字段。

参考网站:http://www.oracle.com/technetwork/issue-archive/2006/06-sep/o56asktom-086197.html

mybatis oracle分页sql

原文:http://my.oschina.net/xiaoyang818/blog/313766

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!