次の方法で共有


element_at 関数

適用対象: 「はい」のチェック マーク Databricks SQL 「はい」のチェック マーク Databricks Runtime

indexarrayExpr の要素を返します。

keymapExpr の値を返します。

構文

element_at(arrayExpr, index)
element_at(mapExpr, key)

引数

  • arrayExpr: ARRAY 式。
  • index: INTEGER 式。
  • mapExpr: MAP 式。
  • key: mapExpr のキーの型に一致する式

戻り値

最初の引数が ARRAY の場合:

  • 結果は、expr の要素の型になります。
  • abs(index) は、1 から配列の長さまでの範囲である必要があります。
  • index が負の場合、この関数は最後から最初の要素にアクセスします。
  • この関数では、abs(index) が配列の長さを超える場合、INVALID_ARRAY_INDEX_IN_ELEMENT_AT エラーが発生します。

最初の引数が MAP であり、keymapExpr 内のエントリと一致しない場合、関数は null 値を返します。

注意

Databricks Runtime では、spark.sql.ansi.failOnElementNotExistsfalse である場合、関数はエラーを発生させる代わりに NULL を返します。

> SELECT element_at(array(1, 2, 3), 2);
 2

> SELECT try_element_at(array(1, 2, 3), 5);
 NULL

> SELECT element_at(array(1, 2, 3), 5);
 Error: INVALID_ARRAY_INDEX_IN_ELEMENT_AT

> SELECT element_at(map(1, 'a', 2, 'b'), 2);
 b

> SELECT element_at(map(1, 'a', 2, 'b'), 3);
 NULL

> SELECT try_element_at(map(1, 'a', 2, 'b'), 3);
NULL