Oracle 分页语句

** 写法1 ;采用 ROWNUM的伪列:

--查询10到20之间的数据
-- SELECT  * FORM (
--                   SELECT * , ROWNUM rn FROM TABLE_NAME 
--                                       WHERE     rn<20 ) temp
--                 WHERE temp.rn>10;  
--2017年8月1日17:18:14 修改,子查询中必须加 表名.* 
 SELECT  * FORM (
                    SELECT  tb.* , ROWNUM rn FROM TABLE_NAME   tb
                                       WHERE     ROWNUM <20 ) temp
                 WHERE temp.rn>10;  


** 写法2 ;采用分析函数 ROW_NUMBER() OVER(ORDER BY COLUMN_NAME DESC/ASC):

SELECT * FROM (
                    SELECT * , ROW_NUMBER() OVER(OREDER BY COLUMN_NAME ASC) rn
                                       FROM  TABLE_NAME )temp
                WHERE temp.rn>10 AND temp.rn<20;

原文地址:https://www.cnblogs.com/humi/p/7192984.html