背景
oracle数据库中没有limit关键词,相对来说oracle的分页就会比较麻烦一点。
需要用到ROWNUM来计算了。
分页方法
由于在oracle查询中涉及到条件,所以需要多重的where查询。主要思路如下:
- 使用普通条件筛选出全量的所需的结果集A
- 对结果A进行查询,增加ROWNUM字段,生成结果集B
- 对结果集B,通过ROWNUM进行where子查询
实现如下:
1 | select * |
优化
针对上面的查询,可以在第二步子查询的时候,先增加NO < endnum
条件,缩小结果集B的范围。
结果如下:
1 | select * |
扩展
相对的mysql就比较简单,直接用limit
即可:
1 | select * from table_x limit startnum, endnum |