すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:SLICE

最終更新日:Jan 17, 2025

特定の長さに基づいて開始位置から配列内の要素をコピーし、新しい配列として返します。

構文

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

パラメーター

  • a: 必須です。 このパラメーターは、配列を指定します。 array<T>Tは、配列内の要素のデータ型を指定します。 要素は任意のデータ型にすることができます。

  • start: 必須です。 このパラメーターは、関数が要素を左から右にコピーし始める位置を指定します。 このパラメータの正の最小値は1です。 startパラメーターを負の値に設定することもできます。 この場合、開始位置は配列の終わりからカウントされますが、要素はまだ左から右にコピーされます。

  • length: 必須。 返される配列内の要素の数。 値は0以上である必要があります。 値が入力配列の長さより大きい場合、この関数は、入力配列の開始位置から終了位置までの要素で構成される新しい配列を返します。

戻り値

ARRAY型の値が返されます。

  • 例1: 長さ3に基づいて、位置1から配列 (10,20, 20, null, null, 30) の要素をコピーします。 例:

    -- The return value is [10, 20, 20]. 
    select slice(array(10, 20, 20, null, null, 30), 1, 3);
  • 例2: 配列 (10,20, 20, null, null, 30) の要素を、2の長さに基づいて位置 -2からコピーします。 例:

    -- The return value is [null, 30]. 
    select slice(array(10, 20, 20, null, null, 30), -2, 2);  
  • 例3: 10の長さに基づいて、位置3から配列 (10,20, 20, null, null, 30) の要素をコピーする。 例:

    -- The return value is [20, null, null, 30]. 
    select slice(array(10, 20, 20, null, null, 30), 3, 10); 
  • 例4: 長さ0に基づいて、位置3から配列 (10,20, 20, null, null, 30) の要素をコピーする。 例:

    -- The return value is []. 
    select slice(array(10, 20, 20, null, null, 30), 3, 0);

関連関数

SLICEは複雑なタイプの関数です。 ARRAY、MAP、STRUCT、JSONなどの複雑なデータ型のデータを処理するために使用される関数の詳細については、複合型関数.