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

MaxCompute:INDEX

最終更新日:Mar 26, 2026

配列から位置を指定して要素を取得する、またはマップからキーを指定して値を取得します。

構文

配列へのアクセス

<array_expr>[<index>]

マップへのアクセス

<map_expr>[<key>]
重要

角括弧表記(bracket notation)を直接使用してください。INDEX(...) のように関数呼び出しでラップしないでください。INDEX(<var1>[<var2>]) を実行するとエラーが発生します。

注意事項

  • 配列のインデックスは 0 始まりです:最初の要素のインデックスは 0、2 番目の要素は 1、以降同様です。

  • マップへのアクセスでは、キーはマップで宣言されたキー型 K と厳密に一致する必要があります。

パラメーター

配列へのアクセス

パラメーター説明
array_exprarray<T>アクセス対象の配列です。配列が null の場合、null を返します。
indexBIGINT(0 以上)取得対象の要素の 0 始まりの位置です。インデックスが範囲外の場合、null を返します。

戻り値の型: Tarray<T> で宣言された要素の型です。

マップへのアクセス

パラメーター説明
map_exprmap<K, V>アクセス対象のマップです。マップが null の場合、null を返します。
keyK検索対象のキーです。キーがマップ内に存在しない場合、null を返します。

戻り値の型: Vmap<K, V> で宣言された値の型です。

位置を指定して配列要素にアクセス

-- 'c' を返します(インデックス 2 は 3 番目の要素)
SELECT ARRAY('a', 'b', 'c')[2];

キーを指定してマップの値にアクセス

-- 1 を返します
SELECT STR_TO_MAP("test1=1,test2=2")["test1"];

関連関数

INDEX は複合型関数です。ARRAYMAPSTRUCT、および JSON データを処理する関数の詳細については、「複合型関数」をご参照ください。