Функция try_element_at
Область применения: Databricks SQL Databricks Runtime 10.4 LTS и выше
Возвращает элемент arrayExpr
, расположенный на позиции index
, или NULL, если index
выходит за пределы допустимых значений.
Возвращает значение mapExpr
для key
или NULL, если key
не существует.
Синтаксис
try_element_at(arrayExpr, index)
try_element_at(mapExpr, key)
Аргументы
arrayExpr
: выражение ARRAY.index
: выражение INTEGER.mapExpr
: выражение MAP.key
: выражение, соответствующее типу ключейmapExpr
Возвраты
Если первый аргумент — ARRAY (МАССИВ):
- результат содержит элементы типа
expr
; - abs(index) не может иметь значение 0.
- Если
index
имеет отрицательное значение, функция оценивает элементы в обратном порядке. - Функция возвращает
NULL
, если значениеabs(index)
превышает длину массива илиkey
не существует в этом сопоставлении.
Примеры
> 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