element_at
-Funktion
Gilt für: Databricks SQL Databricks Runtime
Gibt das Element eines arrayExpr
bei index
zurück.
Gibt den Wert von mapExpr
für key
zurück.
Syntax
element_at(arrayExpr, index)
element_at(mapExpr, key)
Argumente
arrayExpr
: Ein ARRAY-Ausdruck.index
: Ein INTEGER-Ausdruck.mapExpr
: Ein MAP-Ausdruck.key
: Ein Ausdruck, der dem Typ der Schlüssel vonmapExpr
entspricht.
Gibt zurück
Wenn das erste Argument ein ARRAY ist:
- Das Ergebnis ist vom Typ der Elemente von
expr
. - abs(index) muss zwischen 1 und der Länge des Arrays liegen.
- Wenn
index
negativ ist, greift die Funktion vom letzten bis zum ersten Element auf Elemente zu. - Wenn
abs(index)
die Länge des Arrays übersteigt, wird der Fehler INVALID_ARRAY_INDEX_IN_ELEMENT_AT ausgelöst.
Wenn das erste Argument ein MAP-Element ist und key
nicht mit einem Eintrag in mapExpr
abgeglichen werden kann, gibt die Funktion NULL zurück.
Hinweis
Wenn spark.sql.ansi.failOnElementNotExists
in Databricks Runtime gleich false
ist, gibt die Funktion NULL
zurück, anstatt einen Fehler auszulösen.
Beispiele
> 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