本節では、複数行を返すことができる関数について説明します 現在、このクラスの関数のみが、表9-38で説明する、連続生成関数です。
表 9-38. 連続生成関数
| 関数 | 引数型 | 戻り値の型 | 説明 | 
|---|---|---|---|
| generate_series(start, stop) | int または bigint | setof int またはsetof bigint (引数の型と同一) | startからstopまでの刻み1で連続する値を生成します。 | 
| generate_series(start, stop, step) | int または bigint | setof int または setof bigint (引数の型と同一) | startからstopまでの刻みstepで連続する値を生成します。 | 
stepが正の場合、startがstopよりも大きいと0行が返ります。 反対に、stepが負の場合は、startがstopよりも小さいと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)