element_at
関数
適用対象: Databricks SQL Databricks Runtime
index
の arrayExpr
の要素を返します。
key
の mapExpr
の値を返します。
構文
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 であり、key
が mapExpr
内のエントリと一致しない場合、関数は null 値を返します。
注意
Databricks Runtime では、spark.sql.ansi.failOnElementNotExists
が false
である場合、関数はエラーを発生させる代わりに 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