ITPub博客

整型序号产生器(二)

原创 Linux操作系统 作者:guoge 时间:2007-12-13 09:44:07 0 删除 编辑

ROWNUM + 大表方法

这里介绍如何使用ROWNUM这个伪列和有大量记录的一个表来产生连续整数。

要求

在使用这个方法前,首先得找到至少拥有和你所需产生的整数同样数量记录的表。例如,如果你想产生110,那么这个表至少有10条记录。数据字典ALL_OBJECTS 通常是所需要的表。.

方法

一旦你找到有足够数量记录的表,你可以简单地select ROWNUM from 来产生所需的整数,例如:

select rownum

from   all_objects

where  rownum <= 10 ;

 

    ROWNUM

----------

         1

         2

         3

         4

         5

         6

         7

         8

         9

        10

 

我们使用这种方法解决文中开头的问题。

select

  day_of_week ,

  t.val

from

  ( select rownum - 1 as day_of_week

    from   all_objects

    where  rownum <= 7

  ) i

    left outer join t

    using ( day_of_week )

order by

  day_of_week

;

 

DAY_OF_WEEK        VAL

----------- ----------

          0

          1        100

          2

          3        300

          4        400

          5        500

          6

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9036/viewspace-498/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-12-12

  • 博文量
    72
  • 访问量
    208649