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