返回集合的函数#

本节描述了那些可能返回多于一行的函数。如今此类的唯一函数是序列号生成函数,详见下表。

表.序列号生成函数

函数

参数类型

返回类型

描述

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)