rownum是oracle数据库中的一个特有关键字,返回的是一个数字代表记录的行号。
基础知识:rownum只能做<或者<=的条件查询,如果要rownum进行51到100这样的范围判断,需要先查询出每一行的rownum,再用那个序号做判断
获取51到100的数据
三种分页的写法:
1.使用minus,原理就是查询出前100行的数据 减去 查询出前50行的数据
select * from data_table_sql where rownum<=100 minus select * from datat_able_sql where rownum<=50
2.查询出所有数据的rownum,然后再选择50到100的数据(不推荐)
select * from (select t.*,rownum num from data_table_sql t) where num<=100 and num>50
3.限定范围100条数据,并查询出这100条的rownum,然后再选择50到100的数据
select * from (select t.*,rownum num from data_table_sql t where rownum<=100 ) where num>50
下面给大家拓展两个分页查询语句:
1:单表查询
select * from (select t.*,rownum r from table t where rownum <= pagenumber*pagesize) where r >(pagenumber)*pagesize
2:两张表联查
select * from (select rownum rn,xx.* from (select 表名.字段名, 表名.字段名, 表名.字段名... from table1 t1, table2 t2 where t1.字段=t2.字段) xx where rownum<=pagesize*pagenumber) where rn >(pagenumber-1)*pagesize
总结
以上所述是www.887551.com给大家介绍的oracle 使用rownum的三种分页方式,希望对大家有所帮助