Funkce element_at
Platí pro: Databricks SQL Databricks Runtime
Vrátí prvek znaku arrayExpr
at index
.
Vrátí hodnotu mapExpr
pro key
.
Syntaxe
element_at(arrayExpr, index)
element_at(mapExpr, key)
Argumenty
arrayExpr
: Výraz ARRAY.index
: Výraz INTEGER.mapExpr
: Výraz MAP.key
: Výraz odpovídající typu klíčůmapExpr
Návraty
Pokud je prvním argumentem POLE:
- Výsledek je typu prvků
expr
. - abs(index) musí být mezi 1 a délkou matice.
- Pokud
index
je funkce záporná, přistupuje k prvkům od posledního k prvnímu. - Funkce vyvolá INVALID_ARRAY_INDEX_IN_ELEMENT_AT chybu, pokud
abs(index)
překročí délku pole.
Pokud je prvním argumentem MAP a key
nelze ji spárovat s položkou ve mapExpr
funkci, vrátí hodnotu null.
Poznámka:
Pokud spark.sql.ansi.failOnElementNotExists
je false
funkce v databricks Runtime, vrátí NULL
místo vyvolání chyb.
Příklady
> 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