`
lsj8080
  • 浏览: 16539 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

浅析Oracle的分页

 
阅读更多

目前我知道有两种Oracle分页语句,下面与大家分享一下,如果有什么问题,希望大家给予指点:

第一种:

SELECT *
  FROM (SELECT TEM.*, ROWNUM RN
          FROM (SELECT 列名称1,列名称2 ......FROM 表名称) TEM
         WHERE ROWNUM <= 22)
 WHERE RN > 0;

 

第二种:

SELECT 列名称1,列名称2 ......   
  FROM (SELECT ROW_NUMBER() OVER(ORDER BY 列名称 DESC/ASC) RN, 列名称1,列名称2 ......   FROM  表名称)
 WHERE RN BETWEEN 0 AND 22;

 

首先:第一点:第一种的效率较高,第二种稍低一些,用时大约是第一种的三倍。

     第二点:如果把表改成视图第一种存在重复数据(至于原因我未知),而第二种不会出现此种情况。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics