try_element_at
函数
适用于: Databricks SQL Databricks Runtime 10.4 LTS 及更高版本
返回位于 index
处的 arrayExpr
的元素;如果 index
超出边界,则返回 NULL。
返回 key
的 mapExpr
值;如果 key
不存在,则返回 NULL。
语法
try_element_at(arrayExpr, index)
try_element_at(mapExpr, key)
参数
arrayExpr
:一个 ARRAY 表达式。index
:一个 INTEGER 表达式。mapExpr
:一个 MAP 表达式。key
:一个匹配mapExpr
键类型的表达式
返回
如果第一个参数是 ARRAY:
- 则结果是
expr
的元素类型。 - abs(index) 不得为 0。
- 如果
index
为负,该函数将按从后到前的顺序访问元素。 - 如果
abs(index)
超过数组长度,或如果映射中不存在key
,则函数返回NULL
。
示例
> SELECT try_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 try_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