touchmm 发表于 2013-1-29 21:56:23

rownum和order by以及index的关系

本篇文章主要讨论rownum和排序以及索引的关系

  问题1、rownum正序是指什么?
  问题2、rownum和order by语句在一起时,执行的先后顺序是什么?order by语句如何影响rownum正序?
  问题3、rownnum与索引之间的关系?
  --Create table
  create table DAIMIN
  (ID NUMBER not null,
  PARENTID NUMBER
  );
  alter table daimin add constraint pk_daimin primary key(id);
  SQL>select * fromDAIMIN;
  ID PARENTID
  --------------------
  16
  23
  51
  32
  问题1、rownum正序是指什么?
  rownum正序是指rownum的返回,是按照1,2,3依次递增,如上面的查询显示的效果
  问题2、rownum和order by语句在一起时,执行的先后顺序是什么?order by语句如何影响rownum正序?
  下面执行两个语句进行比较:
  SQL>select rownum as r,t.ID from daimint order by t.ID;
  R ID
  --------------------
  11
  22
  33
  45
  现象:是rownum是按照正序来返回的
  该语句的执行计划如下:

   --------------------------------------------------------------------
  |Id|Operation|Name|Rows|Bytes|Cost|
  --------------------------------------------------------------------
  |0|SELECT STATEMENT
页: [1]
查看完整版本: rownum和order by以及index的关系