ablog

不器用で落着きのない技術者のメモ

連続する数値を作成するSQL

SQLクックブック ―データベースエキスパートのための実践レシピ集

SQLクックブック ―データベースエキスパートのための実践レシピ集

P.311 レシピ 10.5 連続する数値を作成する
を見て、Oracle で連続する数値を作成してみた。

with x
as (
select level id
       from dual
       connect by level <= 10
)
select * from x;

もしくは

select * from (select level id from dual connect by level <= 10);
  • 実行結果
SQL> with x
as (
select level id
       from dual
       connect by level <= 10
)
select * from x;  2    3    4    5    6    7

        ID
----------
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10

10 rows selected.
  • 実行環境
SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.7.0 - 64bit Production
PL/SQL Release 9.2.0.7.0 - Production
CORE    9.2.0.7.0       Production
TNS for Solaris: Version 9.2.0.7.0 - Production
NLSRTL Version 9.2.0.7.0 - Production


追記(2014.01.14):
» PostgreSQL: 集合を返すGENERATE_SERIES関数で大量データを生成して集計する TECHSCORE BLOG のようにPostgreSQL だと同じことを

SELECT GENERATE_SERIES(1, 10);

でできるらしい。