Orcle分页
在了解orcle分页前让我们先了解一下,行号(rownum)与物理地址的概念
1.rownum行号
注意:select操作时就会执行
每出一行记录,该行就会加一个行号,行号不属于一张表.
补充:
行号必须是从1开始的,会依次递增,不会跳着做,eg:如1到5
行号不属于任何一张表,不能用表名.rownum
2.rowid 行物理地址
行物理地址和表中的行固定绑定,永远不变
作用:rowid行物理地址,可以在plsql中对数据进行修改
Orcle分页语句
格式:
select * from
(select rownum rn, tt.* from(
--主查询
) tt where rownum<#{end})
where rn>#{begin};
步骤分析
因rownum是在select时执行,如果sql后在进行分组过滤。那么行号顺序就不会显示正确的顺序
因此我们可以在加一层查询,过滤条件放到外层查询中,这样就保证了查询出来的行号有序。
增加起始页条件时,如果在过滤条件后继续增加条件如: and rn>5,这里要注意查询出第一条记录的时候,本来要 在该行上加上行号1可是我们要拿1去比对where后面的条件1不可能大于任何一个正数。where后面只要加了大于任何正数的条件就一定查不出任何数据。所以又对以上查询又加了一层查询,给里面的行号设置了别名。在外面添加起始页条件。