返回集合的函数
返回集合的函数#
本节描述了那些可能返回多于一行的函数。如今此类的唯一函数是序列号生成函数,详见下表。
表.序列号生成函数
函数 |
参数类型 |
返回类型 |
描述 |
---|---|---|---|
generate_series(start, stop) |
int or bigint |
setof int 或 setof bigint (与参数类型相同) |
生成一个数值序列,从start到stop,步长为 1 。 |
generate_series(start, stop, step) |
int or bigint |
setof int 或 setof bigint (与参数类型相同) |
生成一个数值序列,从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)