本節では、場合により複数行を返す関数について説明します。現在、このクラスの関数のみが、表9-43で説明する、連続生成関数です。
表 9-43. Series Generating Functions
関数 | 引数型 | 戻り型 | 説明 |
---|---|---|---|
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)