SQL oracle数据库中实现分页的简单sql语句
·
本文中使用两种函数来实现oracle数据库中的分页,下列为举例说明:
1、使用ROW_NUMBER() OVER()通过行号进行分页查询
-- 查询某表,并为该表添加行号字段(rn)
select * from (
select a.*,ROW_NUMBER() OVER(ORDER BY '表中某字段' DESC|ASC) AS rn
from '表名字' AS a where ......
) where rn <= 10
上述sql中,OVER(ORDER BY '表中某字段' DESC|ASC),可用DESC倒序 或者 ASC正序。
简单来说就是将查询结果中新加了一个行号字段,字段名为rn,通过行号来实现不同的操作当然一般用作分页。
2、使用OFFSET和FETCH实现分页查询
-- 查询该表中从 第20条开始 到 第100条的数据
select * from '表名称' where ......
OFFSET '20' ROW|ROWS FETCH NEXT|FIRST '100' ROW|ROWS ONLY;
上述sql中: ROW和ROWS 可以互换使用、作用相同;
NEXT和FIRST 可以互换使用,作用相同;
OFFSET '20' ROWS表示跳过前20行,FETCH NEXT '100' ROWS ONLY表示获取接下来的100行
注意:OFFSET和FETCH实现分页查询需要在oracle12c及其之后才可以使用
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)