| PostgreSQL 8.0.0 中文文档(PostgreSQL 中国制作) | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 9. 函数和操作符 | Fast Forward | Next |
本节描述那些可能返回多于一行的函数。目前这个类型的函数只有序列号生成函数, 如 Table 9-38 所述。
Table 9-38. 序列号生成函数
| 函数 | 参数类型 | 返回类型 | 描述 |
|---|---|---|---|
| generate_series(start, stop) | int 或 bigint | setof int 或 setof bigint (与参数类型相同) | 生成一个数值序列,从 start 到 stop,步进为一。 |
| generate_series(start, stop, step) | int or bigint | setof int or setof bigint (same as argument type) | 生成一个数值序列,从 start 到 stop,步进为 step。 |
如果 step 是正数,而 start 大于 stop, 那么返回零行。想法,如果 step 是负数,start 小于 stop, 则返回零行。如果是 NULL 输入,也产生零行。step 为零则是一个错误。 下面是一些例子:
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)