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