oracle 分页 sql

在项目改造中,原同事写的分页是从数据库查询出所有记录后再分页,现在改造成动态查询出所分出来的页和记录数。

//查询第21条到第40条记录

SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40) WHERE RN >= 21

从上面的查询格式来看,oracle表中的中间多少条记录,最少要嵌套3层子查询,如果和其他表作连接,则把最后的连接查询看做是A表即可。越是查到最后查询越是慢。

未完待续....,随后将给出oracle存储过程分页和sql脚本分页性能比较。