GENERATE_SERIES¶
说明¶
序列生成函数,根据传入的参数的值,产生等差序列
参数¶
int4_expression1
起始数值。
int4_expression2
终止数值。
int4_expression3
步长。
注解
如果步长为正数,代表正向递增,如果是负数,代表反向递减,缺省默认值为1。
示例¶
示例1:获取起始值和终止值之间的序列值
-- 用 generate_series 获取起始值和终止值之间的序列值(默认步长为 1)
SELECT * FROM generate_series(2,4);
GENERATE_SERIES(int) |
--------------------------
2 |
--------------------------
3 |
--------------------------
4 |
总数目:3
SELECT * FROM generate_series(-5,-3);
GENERATE_SERIES(int) |
--------------------------
-5 |
--------------------------
-4 |
--------------------------
-3 |
总数目:3
-- 在不指定步长的情况下,如果起始值大于终止值,那么返回 0 行
SELECT * FROM generate_series(4,3);
GENERATE_SERIES(int) |
总数目:0
SELECT * FROM generate_series(-3,-4);
GENERATE_SERIES(int) |
总数目:0
-- 步长为正数,起始值和终止值之间按加法生成序列,无序列则返回 0 行
SELECT * FROM generate_series(1,5,2);
GENERATE_SERIES(int) |
--------------------------
1 |
--------------------------
3 |
--------------------------
5 |
总数目:3
-- 步长为负数,起始值和终止值之间按减法生成序列,无序列则返回 0 行
SELECT * FROM generate_series(5,1,-2);
GENERATE_SERIES(int) |
--------------------------
5 |
--------------------------
3 |
--------------------------
1 |
总数目:3
-- 起始值与终止值至少一个若为NULL,则返回 0 行
SELECT * FROM generate_series(NULL,3,1);
GENERATE_SERIES(int) |
总数目:0
SELECT * FROM generate_series(3,NULL,1);
GENERATE_SERIES(int) |
总数目:0
SELECT * FROM generate_series(NULL,NULL,1);
GENERATE_SERIES(int) |
总数目:0
-- 步长为0,则报错
SELECT * FROM generate_series(5,1,0);
ERROR, 函数的参数非法, 步长不能为0