根據運算式產生包含指定元素的數組。
命令格式
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.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資料)的處理函數請參見複雜類型函數。