返回集合的函数 =============== 本节描述了那些可能返回多于一行的函数。如今此类的唯一函数是序列号生成函数,详见下表。 **表.序列号生成函数** .. list-table:: :widths: auto :header-rows: 1 * - 函数 - 参数类型 - 返回类型 - 描述 * - 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)