↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0
历史版本。 PostgreSQL 8.3 已结束支持。 请参阅 当前版本手册.

9.21. 集合返回函数 #

本节描述可能返回多于一行的函数。目前这一类函数只有序列生成函数,详见表 9.43。

表 9.43. 序列生成函数

FunctionArgument TypeReturn Type描述
generate_series(start, stop)int或bigintsetof int或setof bigint(与参数类型相同)以 1 为步长,从 start 到 stop 生成一系列值
generate_series(start, stop, step)int或bigintsetof 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)

SELECT * FROM generate_series('2008-03-01 00:00'::timestamp,
                              '2008-03-04 12:00', '10 hours');
   generate_series   
---------------------
 2008-03-01 00:00:00
 2008-03-01 10:00:00
 2008-03-01 20:00:00
 2008-03-02 06:00:00
 2008-03-02 16:00:00
 2008-03-03 02:00:00
 2008-03-03 12:00:00
 2008-03-03 22:00:00
 2008-03-04 08:00:00
(9 rows)

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.