根据表达式生成包含指定元素的数组。
命令格式
sequence(start, stop, [step])
参数说明
start:表示元素序列开始的表达式,元素序列包含start。
start和stop支持的整数类型包括:Tinyint 、SmallInt 、Int、BigInt;对应的step类型分别为:Tinyint 、SmallInt 、Int 、BigInt。
start和stop支持的时间日期类型包括:Date、DateTime、Timestamp;对应的step类型为IntervalDayTime或IntervalYearMonth。
stop:表示元素序列结束的表达式,元素序列包含stop。
step:可选参数。元素序列步长值。
默认情况下, 当start小于等于stop时, step为1,否则为-1。
如果元素序列为时间类型时,默认分别为1天或-1天;如果提供step值,当start大于stop时,step必须为负数,反之必须为正数,否则抛出异常。
返回值说明
返回由指定表达式生成元素组成的数组。
如果start大于stop而step为正数时抛出异常,反之亦然。
sequence函数默认生成的元素数量上限为10000,可以通过设置
odps.sql.max.sequence.length
Flag值改变元素数量上限。
示例
SELECT sequence(1, 5);
返回结果如下:
[1, 2, 3, 4, 5]
SELECT sequence(5, 1);
返回结果如下:
[5, 4, 3, 2, 1]
SELECT sequence(to_date('2018-01-01'), to_date('2018-03-01'), interval 1 month);
返回结果如下:
[2018-01-01, 2018-02-01, 2018-03-01]
相关函数
SEQUENCE函数属于复杂类型函数,更多对复杂类型数据(例如ARRAY、MAP、STRUCT、JSON数据)的处理函数请参见复杂类型函数。
文档内容是否对您有帮助?