存档

文章标签 ‘rownum’,文章数:1

在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

执行结果为:

SQL> select * from
  2  ( select rownum rnm, a.* from ( select OBJECT_NAME from DBA_OBJECTS where object_type='TABLE' ) a
  3      where rownum <= 200 )
  4  where rnm > 100
  5  ;
       RNM OBJECT_NAME
---------- --------------------------------------------------------------------------------------------------------------------
       101 HISTGRM$
       102 HIST_HEAD$
       103 DUAL
       104 PARTOBJ$
       105 PARTCOL$
       106 TABPART$
       107 INDPART$
       108 SUBPARTCOL$
       109 TABSUBPART$
       110 INDSUBPART$
       111 TABCOMPART$
       RNM OBJECT_NAME
---------- --------------------------------------------------------------------------------------------------------------------
       112 INDCOMPART$
       113 PARTLOB$
       114 LOBFRAG$
       115 LOBCOMPPART$
       116 DEFSUBPART$
       117 DEFSUBPARTLOB$
       118 SYSTEM_PRIVILEGE_MAP
       119 TABLE_PRIVILEGE_MAP
       120 STMT_AUDIT_OPTION_MAP
       121 RESOURCE_MAP
       122 USER_ASTATUS_MAP
       RNM OBJECT_NAME
---------- --------------------------------------------------------------------------------------------------------------------
       123 EXPACT$
       124 NOEXP$
       125 PROCEDUREJAVA$
       126 PROCEDUREC$
       127 PROCEDUREPLSQL$
       128 RESULT$
       129 KOTTD$
       130 KOTTB$
       131 KOTAD$
       132 KOTMD$
       133 KOTTBX$
       RNM OBJECT_NAME
---------- --------------------------------------------------------------------------------------------------------------------
       134 KOTADX$
       135 KOPM$
       136 VTABLE$
       137 ATEMPTAB$
       138 LIBRARY$
       139 USER_HISTORY$
       140 MIGRATE$
       141 ICOLDEP$
       142 OPERATOR$
       143 OPBINDING$
       144 OPANCILLARY$
       RNM OBJECT_NAME
---------- --------------------------------------------------------------------------------------------------------------------
       145 OPARG$
       146 INDTYPES$
       147 INDOP$
       148 INDARRAYTYPE$
       149 SECOBJ$
       150 ASSOCIATION$
       151 USTATS$
       152 JAVASNM$
       153 SUM$
       154 SUMDETAIL$
       155 SUMINLINE$
       RNM OBJECT_NAME
---------- --------------------------------------------------------------------------------------------------------------------
       156 SUMKEY$
       157 SUMAGG$
       158 SUMJOIN$
       159 SUMDEP$
       160 SUMPRED$
       161 SUMQB$
       162 DIM$
       163 DIMLEVEL$
       164 DIMLEVELKEY$
       165 DIMJOINKEY$
       166 DIMATTR$
       RNM OBJECT_NAME
---------- --------------------------------------------------------------------------------------------------------------------
       167 HIER$
       168 HIERLEVEL$
       169 RLS$
       170 RLS_SC$
       171 RLS_GRP$
       172 RLS_CTX$
       173 CONTEXT$
       174 RULESET$
       175 INDPART_PARAM$
       176 OL$
       177 OL$HINTS
       RNM OBJECT_NAME
---------- --------------------------------------------------------------------------------------------------------------------
       178 OL$NODES
       179 SQL$
       180 SQL$TEXT
       181 SQLPROF$
       182 SQLPROF$DESC
       183 SQLPROF$ATTR
       184 EXPPKGOBJ$
       185 EXPPKGACT$
       186 EXPDEPOBJ$
       187 EXPDEPACT$
       188 MON_MODS$
       RNM OBJECT_NAME
---------- --------------------------------------------------------------------------------------------------------------------
       189 MON_MODS_ALL$
       190 METAVIEW$
       191 METAFILTER$
       192 METAXSL$
       193 METAXSLPARAM$
       194 METASTYLESHEET
       195 METASCRIPT$
       196 METASCRIPTFILTER$
       197 METANAMETRANS$
       198 METAPATHMAP$
       199 EXTERNAL_TAB$
       RNM OBJECT_NAME
---------- --------------------------------------------------------------------------------------------------------------------
       200 EXTERNAL_LOCATION$
已选择100行。
SQL>

 

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

比ASE和IQ的实现方式强N倍。 哎,可叹的sybase啊。

————————————————————————————————-
—- 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
—- 转载务必注明原始出处 : http://www.dbainfo.net
—- 关键字:oracle 分页 rownum
————————————————————————————————-