try_element_at 函数

适用于:check marked yes Databricks SQL check marked yes Databricks Runtime 10.0 及更高版本

返回位于 index 处的 arrayExpr 的元素;如果 index 超出边界,则返回 NULL。

返回 keymapExpr 值;如果 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