根据表达式生成包含指定元素的数组。

命令格式

	sequence(start, stop, [step]) 

参数说明

  • start:表示元素序列开始的表达式,元素序列包含start

    • startstop支持的整数类型包括:Tinyint 、SmallInt 、Int、BigInt;对应的step类型分别为:Tinyint 、SmallInt 、Int 、BigInt。

    • startstop支持的时间日期类型包括:Date、DateTime、Timestamp;对应的step类型为IntervalDayTime或IntervalYearMonth。

  • stop:表示元素序列结束的表达式,元素序列包含stop

  • step:可选参数。元素序列步长值。

    默认情况下, 当start小于等于stop时, step1,否则为-1

    如果元素序列为时间类型时,默认分别为1天-1天;如果提供step值,当start大于stop时,step必须为负数,反之必须为正数,否则抛出异常。

返回值说明

返回由指定表达式生成元素组成的数组。

  • 如果start大于stopstep为正数时抛出异常,反之亦然。

  • sequence函数默认生成的元素数量上限为10000,可以通过设置odps.sql.max.sequence.lengthFlag值改变元素数量上限。

示例

  • 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数据)的处理函数请参见复杂类型函数