element_at
Функции
Область применения: Databricks SQL Databricks Runtime
Возвращает элемент объекта в arrayExpr
index
.
Возвращает значение mapExpr
для key
.
Синтаксис
element_at(arrayExpr, index)
element_at(mapExpr, key)
Аргументы
arrayExpr
: выражение ARRAY.index
: целочисленное выражение.mapExpr
: выражение MAP.key
: выражение, соответствующее типу ключей .mapExpr
Возвращает
Если первым аргументом является МАССИВ:
- Результат имеет тип элементов
expr
. - Значение abs(index) должно находиться в диапазоне от 1 до длины массива.
- Если
index
значение отрицательное, функция обращается к элементам от последнего к первому. - Функция вызывает ошибку INVALID_ARRAY_INDEX_IN_ELEMENT_AT , если
abs(index)
превышает длину массива.
Если первый аргумент является MAP и key
не может быть сопоставлен с записью в mapExpr
функции возвращает значение NULL.
Примечание
В Databricks Runtime функция возвращает NULL
, а spark.sql.ansi.failOnElementNotExists
false
не вызывает ошибки.
Примеры
> 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