他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

9.18. 集合を返す関数

本節では、複数行を返すことができる関数について説明します 現在、このクラスの関数のみが、表9-38で説明する、連続生成関数です。

表 9-38. 連続生成関数

関数引数型戻り値の型説明
generate_series(start, stop)int または bigintsetof int またはsetof bigint (引数の型と同一)startからstopまでの刻み1で連続する値を生成します。
generate_series(start, stop, step)int または bigintsetof int または setof bigint (引数の型と同一)startからstopまでの刻みstepで連続する値を生成します。

stepが正の場合、startstopよりも大きいと0行が返ります。 反対に、stepが負の場合は、startstopよりも小さいと0行が返ります。 stepが0の時はエラーになります。 また、NULLが入力された場合も0行が返ります。 以下に数点例を示します。

select * from generate_series(2,4);
 generate_series
-----------------
               2
               3
               4
(3 rows)

select * from generate_series(5,1,-2);
 generate_series
-----------------
               5
               3
               1
(3 rows)

select * from generate_series(4,3);
 generate_series
-----------------
(0 rows)

select current_date + s.a as dates from generate_series(0,14,7) as s(a);
   dates
------------
 2004-02-05
 2004-02-12
 2004-02-19
(3 rows)