更新时间:2023-08-04 12:42:29
你们好,最近小艾特发现有诸多的小伙伴们对于Oracle分页语句,oracle分页这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。
1、 首先选择一个表,最好是独立的表。由于这个操作只涉及到查询,所以也可以使用word表或者其他表的父表。如果当前用户下没有表,则在当前用户的权限下创建一个表,导入少量数据。示例中使用的表结构和数据如图所示。
2、 第一步是找出1-最大范围内的所有信息。注意事项:完整的查询部分(即select * from test)要有别名;Rownum应该取个别名(至于为什么后面再说)
3、 一个常见的问题是:为什么要先查询小于或小于等于?不能先查询那些大于一定限额的吗?
4、 这样就找不到数据了,因为oracle对rownum的分配是这样的:显示并获取内部的查询结果集,然后根据过滤条件将rownum分配给它,从1开始,如图,获取所有数据后,
5、 将rownum 1赋给第一条数据,因为是12,所以这条记录会被剔除,下一条会被赋为1,然后所有记录都不会被保留。
6、 至此,我们已经得到了前5条记录,那么如何得到第3-5条的记录呢?只是在外层加一层select语句。
7、 需要注意的是,外层查询的过滤条件需要使用内层rownum的别名而不是行,这也是第二步强调别名的原因,因为如果不使用内层rownum的别名,外层查询会重新分配rownum。
8、 而外部条件是'=3 '所以会像第四步一样,得不到任何数据。
以上就是oracle分页这篇文章的一些介绍,希望对大家有所帮助。