SEQUENCE 函数

概述

SEQUENCE 函数用于生成一个序列,该序列从起始值(start)开始,到结束值(stop)结束,并按照指定的步长(step)递增。序列结果包含起始值和结束值。如果未提供步长参数,系统会根据起始值和结束值的关系自动选择默认步长。

功能

  • 当起始值小于等于结束值时,若未指定步长,默认步长为 1。
  • 当起始值大于结束值时,若未指定步长,默认步长为 -1。
  • 支持整数和时间类型的参数。

参数

  • start (tinyint/smallint/int/bigint): 序列的起始值。
  • stop (tinyint/smallint/int/bigint): 序列的结束值。
  • step (tinyint/smallint/int/bigint): 序列中每个元素之间的差值(步长),默认值为 1 或 -1,取决于起始值和结束值的关系。

返回结果

返回一个与参数类型相同的数组。

使用示例

  1. 生成整数序列:

    SELECT sequence(-2, 2); -- 结果:[-2, -1, 0, 1, 2]
    SELECT sequence(2, -2); -- 结果:[2, 1, 0, -1, -2]
    SELECT sequence(-2, 2, 3); -- 结果:[-2, 1]
  2. 生成时间序列:

    SELECT sequence(timestamp '2020-10-10 00:00:00', timestamp '2020-10-15 00:00:00', interval '1 12:00:00' day to second);
    -- 结果:[2020-10-10 00:00:00, 2020-10-11 12:00:00, 2020-10-13 00:00:00, 2020-10-14 12:00:00]

注意事项

  • 当起始值和结束值相等时,生成的序列仅包含一个元素。
  • 当步长为 0 时,SEQUENCE 函数将返回一个错误。

联系我们
预约咨询
微信咨询
电话咨询