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

Oracle中实现分页的方法 .

 
阅读更多

转:http://blog.csdn.net/andkylee/article/details/5638033

 

在oracle中显示分页很简单, 利用两次rownum就实现了。

 

下面的语句用来返回DBA_OBJECTS表中类型为TABLE的所有记录中的第100行至第200行。

 

select * from
( select rownum rnm, a.* from ( select OBJECT_NAME from DBA_OBJECTS where object_type='TABLE' ) a
    where rownum <= 200 )
where rnm > 100

 

 

 

执行结果为:

 

 

  1. SQL> select * from  
  2.   2  ( select rownum rnm, a.* from ( select OBJECT_NAME from DBA_OBJECTS where object_type='TABLE' ) a  
  3.   3      where rownum <= 200 )  
  4.   4  where rnm > 100  
  5.   5  ;  
  6.        RNM OBJECT_NAME  
  7. ---------- --------------------------------------------------------------------------------------------------------------------  
  8.        101 HISTGRM$  
  9.        102 HIST_HEAD$  
  10.        103 DUAL  
  11.        104 PARTOBJ$  
  12.        105 PARTCOL$  
  13.        106 TABPART$  
  14.        107 INDPART$  
  15.        108 SUBPARTCOL$  
  16.        109 TABSUBPART$  
  17.        110 INDSUBPART$  
  18.        111 TABCOMPART$  
  19.        RNM OBJECT_NAME  
  20. ---------- --------------------------------------------------------------------------------------------------------------------  
  21.        112 INDCOMPART$  
  22.        113 PARTLOB$  
  23.        114 LOBFRAG$  
  24.        115 LOBCOMPPART$  
  25.        116 DEFSUBPART$  
  26.        117 DEFSUBPARTLOB$  
  27.        118 SYSTEM_PRIVILEGE_MAP  
  28.        119 TABLE_PRIVILEGE_MAP  
  29.        120 STMT_AUDIT_OPTION_MAP  
  30.        121 RESOURCE_MAP  
  31.        122 USER_ASTATUS_MAP  
  32.        RNM OBJECT_NAME  
  33. ---------- --------------------------------------------------------------------------------------------------------------------  
  34.        123 EXPACT$  
  35.        124 NOEXP$  
  36.        125 PROCEDUREJAVA$  
  37.        126 PROCEDUREC$  
  38.        127 PROCEDUREPLSQL$  
  39.        128 RESULT$  
  40.        129 KOTTD$  
  41.        130 KOTTB$  
  42.        131 KOTAD$  
  43.        132 KOTMD$  
  44.        133 KOTTBX$  
  45.        RNM OBJECT_NAME  
  46. ---------- --------------------------------------------------------------------------------------------------------------------  
  47.        134 KOTADX$  
  48.        135 KOPM$  
  49.        136 VTABLE$  
  50.        137 ATEMPTAB$  
  51.        138 LIBRARY$  
  52.        139 USER_HISTORY$  
  53.        140 MIGRATE$  
  54.        141 ICOLDEP$  
  55.        142 OPERATOR$  
  56.        143 OPBINDING$  
  57.        144 OPANCILLARY$  
  58.        RNM OBJECT_NAME  
  59. ---------- --------------------------------------------------------------------------------------------------------------------  
  60.        145 OPARG$  
  61.        146 INDTYPES$  
  62.        147 INDOP$  
  63.        148 INDARRAYTYPE$  
  64.        149 SECOBJ$  
  65.        150 ASSOCIATION$  
  66.        151 USTATS$  
  67.        152 JAVASNM$  
  68.        153 SUM$  
  69.        154 SUMDETAIL$  
  70.        155 SUMINLINE$  
  71.        RNM OBJECT_NAME  
  72. ---------- --------------------------------------------------------------------------------------------------------------------  
  73.        156 SUMKEY$  
  74.        157 SUMAGG$  
  75.        158 SUMJOIN$  
  76.        159 SUMDEP$  
  77.        160 SUMPRED$  
  78.        161 SUMQB$  
  79.        162 DIM$  
  80.        163 DIMLEVEL$  
  81.        164 DIMLEVELKEY$  
  82.        165 DIMJOINKEY$  
  83.        166 DIMATTR$  
  84.        RNM OBJECT_NAME  
  85. ---------- --------------------------------------------------------------------------------------------------------------------  
  86.        167 HIER$  
  87.        168 HIERLEVEL$  
  88.        169 RLS$  
  89.        170 RLS_SC$  
  90.        171 RLS_GRP$  
  91.        172 RLS_CTX$  
  92.        173 CONTEXT$  
  93.        174 RULESET$  
  94.        175 INDPART_PARAM$  
  95.        176 OL$  
  96.        177 OL$HINTS  
  97.        RNM OBJECT_NAME  
  98. ---------- --------------------------------------------------------------------------------------------------------------------  
  99.        178 OL$NODES  
  100.        179 SQL$  
  101.        180 SQL$TEXT  
  102.        181 SQLPROF$  
  103.        182 SQLPROF$DESC  
  104.        183 SQLPROF$ATTR  
  105.        184 EXPPKGOBJ$  
  106.        185 EXPPKGACT$  
  107.        186 EXPDEPOBJ$  
  108.        187 EXPDEPACT$  
  109.        188 MON_MODS$  
  110.        RNM OBJECT_NAME  
  111. ---------- --------------------------------------------------------------------------------------------------------------------  
  112.        189 MON_MODS_ALL$  
  113.        190 METAVIEW$  
  114.        191 METAFILTER$  
  115.        192 METAXSL$  
  116.        193 METAXSLPARAM$  
  117.        194 METASTYLESHEET  
  118.        195 METASCRIPT$  
  119.        196 METASCRIPTFILTER$  
  120.        197 METANAMETRANS$  
  121.        198 METAPATHMAP$  
  122.        199 EXTERNAL_TAB$  
  123.        RNM OBJECT_NAME  
  124. ---------- --------------------------------------------------------------------------------------------------------------------  
  125.        200 EXTERNAL_LOCATION$  
  126. 已选择100行。  
  127. SQL>  

 

 

总结:在oracle中利用rownum产生伪列真的是太方便了, 尤其利用派生表再加上伪列可以写出很复杂的sql语句来。

分享到:
评论

相关推荐

    Java Oracle实现分页功能.pdf

    Java Oracle实现分页功能.pdf 本文主要介绍了如何使用Java语言与Oracle数据库实现分页功能,包括如何编写存储过程、如何使用Java调用存储过程等内容。 首先,文章介绍了分页的必要性,提到在许多情况下需要进行...

    MyFaces Oracle大数据表分页封装.docx

    总结来说,这个文档提供的分页封装方案通过`DataPage`和`PagedListDataModel`实现了对Oracle大数据表的分页处理,使得在JSF应用中可以高效地展示和操作大数据集。同时,需要注意优化查询策略以避免重复查询,提升...

    Oracle的SQL分页实践.pdf

    在Oracle的SQL分页实践中,可以通过结合使用子查询和rownum来实现分页的效果。例如: ```sql SELECT t1.*, rownum rn FROM ( SELECT * FROM emp ) t1 WHERE rownum ; ``` 上述SQL语句会从emp表中选出前10条记录。...

    Oracle分页+.cs代码+存储过程+Aspnetpager分页控件

    Oracle数据库在处理大数据量时,分页查询是一个非常重要的功能,它可以提高网页加载速度,减少...通过学习和实践,开发者可以掌握在Oracle环境中高效地实现分页查询的方法,从而提升Web应用程序的性能和用户体验。

    JSP+JDBC_真分页(基于Oracle数据库分页).

    在Oracle数据库中,实现分页通常涉及到SQL的`ROWNUM`或`FETCH FIRST`子句(Oracle 12c及更高版本)。`ROWNUM`是一个伪列,表示行的顺序号,而`FETCH FIRST`则允许我们限制返回的行数,从而实现分页效果。 以下是...

    一个关于基于ssm,mysql(也含oracle方式)实现的分页查询.rar

    在MySQL数据库中实现分页查询,通常会用到LIMIT和OFFSET关键字。LIMIT用于指定返回结果集的数量,OFFSET则用来跳过多少条记录。例如,如果我们想要获取第2页,每页显示10条数据,SQL语句可能如下: ```sql SELECT *...

    Oracle的分页查询语句.docx

    Oracle 的分页查询语句可以应用于各种场景,例如在 Web 应用程序中实现分页浏览数据,或者在报表系统中实现数据分页等。通过使用分页查询语句,可以提高查询效率,减少服务器的负载,提高用户体验。 五、结论 ...

    基于ORACLE存储过程分页的实现方法.pdf

    在Oracle中,实现分页的一种有效方法是利用分析函数ROW_NUMBER()。 ROW_NUMBER()函数能够为查询结果中的每一行分配一个唯一的行号,可以根据特定的分组和排序条件进行。例如,`ROW_NUMBER() OVER (PARTITION BY ...

    oracle-jdbc分页实现(只需传入sql语句即可实现分页)

    Oracle数据库提供了多种方法来实现分页查询,其中包括使用ROWNUM伪列、游标(CURSOR)以及Oracle的高级分页功能如ROW_NUMBER()、RANK()和DENSE_RANK()等。 1. ROWNUM伪列: ROWNUM是Oracle数据库特有的一个伪列,它...

    oracle分页技术.rar

    在Oracle中,分页通常通过SQL查询实现,主要涉及两个关键的SQL子句:`ROWNUM`和`OFFSET/FETCH`(在较新版本中)。 1. `ROWNUM`:Oracle的老式分页方式是利用`ROWNUM`伪列。`ROWNUM`在查询执行过程中被赋予值,表示...

    使用jdbc_oracle实现的分页功能

    本示例着重讲解如何利用JDBC和Oracle数据库实现分页功能,同时涵盖一个表的基本操作:增加、删除和修改。 首先,我们需要了解JDBC。JDBC是Java API,它提供了一套标准接口,使得Java程序可以与各种类型的数据库进行...

    oracle分页程序的实现

    以下将详细介绍Oracle数据库中实现分页查询的方法以及相关知识点。 在Oracle数据库中,常见的分页查询方法有ROWNUM和ROW_NUMBER()函数,以及使用子查询和连接操作来实现分页。 1. ROWNUM方法: ROWNUM是Oracle中的...

    Oracle 3种分页SQL方法比较

    为了实现分页,我们通常需要结合子查询来过滤出特定范围的行。例如,获取第5页的数据(每页10条),可以这样写: ```sql SELECT * FROM ( SELECT t.*, ROWNUM rnum FROM YourTable t ) WHERE rnum BETWEEN 41 ...

    oracle、mysql数据库分页.pdf

    SQL Server使用`TOP`关键字配合`NOT IN`子查询或者`OFFSET/FETCH`来实现分页。对于较老的版本,可以采用如下方法: ```sql -- 方案一 select top @pagesize * from tablename where id not in ( select top @...

    Oracle的SQL分页实践

    使用JDBC时,可以结合LIMIT和OFFSET子句(Oracle不支持LIMIT,但可以通过ROWNUM模拟)来实现分页,而在Hibernate中,可以使用Criteria API或HQL的`setFirstResult`和`setMaxResults`方法来实现相同的功能。...

    Oracle中实现分页查询的SQL命令

    Oracle中实现分页查询的SQL命令 //curPage是当前页面,pageCount是每页显示行数 //rownum是伪列,相当于表中每一列的标识列(可以理解为行号),需要显式的提取出来并取一个别名

    oracle存储过程分页.docx

    它使用了一个巧妙的子查询来实现分页,通过比较字段值(根据`@OrderType`判断升序或降序)来确定需要的记录范围。这种方式同样减少了对全表扫描的需求。如果`@IsCount`为非0值,存储过程还会返回记录总数。 在实际...

    Oracle分页(limit方式的运用)

    Oracle数据库作为业界广泛使用的数据库系统之一,在实现分页查询方面提供了多种方法。其中一种常用的方法就是使用`LIMIT`子句(尽管Oracle数据库本身不直接支持标准SQL中的`LIMIT`关键字,但可以通过其他方式模拟其...

    Oracle&JSP分页和Oracle分页

    总结来说,Oracle和JSP结合实现分页涉及以下几个步骤:在Oracle中构造分页查询,使用JDBC在Servlet中执行查询,然后在JSP页面中展示数据。理解并熟练掌握这些步骤对于开发高效、用户友好的数据驱动网站至关重要。在...

    Java实现真分页.自己领悟.

    使用自定义标签库实现分页的好处在于代码的可重用性和易维护性。开发者可以通过简单的标签语法在页面上插入分页组件,而复杂的逻辑则封装在后台Java代码中。例如,`&lt;pagetag:pagination&gt;`标签可能包含如`pageNo`、`...

Global site tag (gtag.js) - Google Analytics