全部產品
Search
文件中心

MaxCompute:SLICE

更新時間:Jun 19, 2024

對ARRAY數組切片,截取從start位置開始長度為length的元素組成新的ARRAY數組。

命令格式

array<T> slice(array<T> <a>, <start>, <length>)

參數說明

  • a:必填。ARRAY數組。array<T>中的T指代ARRAY數組元素的資料類型,數組中的元素可以為任意類型。

  • start:必填。切片起點,從1開始,表示從數組的首個元素開始向右切片。start可以為負數,表示從數組的末尾元素開始向右切片。

  • length:必填。切片長度,必須大於或等於0。切片長度如果大於ARRAY數組長度時,會返回從start位置開始到末尾元素組成的ARRAY數組。

傳回值說明

返回ARRAY類型。

使用樣本

  • 樣本1:截取ARRAY數組array(10, 20, 20, null, null, 30)從第1個位置開始,切片長度為3的元素。命令樣本如下。

    --返回[10, 20, 20]。
    select slice(array(10, 20, 20, null, null, 30), 1, 3);
  • 樣本2:截取ARRAY數組array(10, 20, 20, null, null, 30)從第-2個位置開始,切片長度為2的元素。命令樣本如下。

    --返回[NULL, 30]。
    select slice(array(10, 20, 20, null, null, 30), -2, 2);  
  • 樣本3:截取ARRAY數組array(10, 20, 20, null, null, 30)從第3個位置開始,切片長度為10的元素。命令樣本如下。

    --返回[20, NULL, NULL, 30]。
    select slice(array(10, 20, 20, null, null, 30), 3, 10); 
  • 樣本4:截取ARRAY數組array(10, 20, 20, null, null, 30)從第3個位置開始,切片長度為0的元素。命令樣本如下。

    --返回[]。
    select slice(array(10, 20, 20, null, null, 30), 3, 0);

相關函數

SLICE函數屬於複雜類型函數,更多對複雜類型資料(例如ARRAY、MAP、STRUCT、JSON資料)的處理函數請參見複雜類型函數