适用于: Databricks SQL
 Databricks SQL  Databricks Runtime
 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