Archive for 6月 28th, 2006

Oracle中的rownum

Rownum:
rownum是 oracle 中的伪列,并不真正存在于表中,它只在查询的时候产生。也就是说表中的数据并没有一个真正的物理的列去表示一条记录是第几行,而只是在查询中才会对这些行进行标识。那到底rownum是什么时候赋给行的呢?
rownum是在where条件过滤之后,在任何排序(order by)或聚集(aggregation)之前赋给行的。
同时,只有当rownum被分配给行后才会递增。
rownum的初始值为1。rownum在查询中产生后就不再变化
rownum被分配的过程大致如下:
rownum = 1
for x in ( select * from A )
loop
if ( x satisifies the predicate )
then
OUTPUT the row
rownum = rownum + 1
end if;
end loop;

Page 1 of 11

    搜索本站

    站点日历

    6月 2006
    « 5   7 »
     1234
    567891011
    12131415161718
    19202122232425
    2627282930  

    订阅本站

    文章分类

    最新日志

    热点文章

    日志存档

    常用标签