万能的Oracle 分页语句

//万能 oracle 分页语句,中间写你需要进行分页操作的sql ,效率排第二,最快的分页方法需要将rownum 嵌入到原sql 里面,下次写
select * from (
select rownum as rn,vo.* from ( 

// 需要分页的sql 语句 例如:select * from (表名)

) vo
where rownum <= #{endIndex}) ao
where ao.rn >= #{startIndex}
-1:无ORDER BY排序的写法。(效率最高)某些情况无法满足(例:查询的数据不需要返回ROWNUM这个字段的时候)
--(经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!)
SELECT *
  FROM (SELECT ROWNUM AS rowno, t.*
          FROM student_table t
         WHERE 查询条件 
           AND ROWNUM <= 20) vo
 WHERE vo.rowno >= 10;

-- 20 和 10 是表示第10行~第20行,mybatis中可以换成插入的参数 #{} ;
-- 上述表示要查询student_table 表且需要分页,

有用上的麻烦点个赞呀!哈哈

你可能感兴趣的:(万能的Oracle 分页语句)