Freigeben über


element_at-Funktion

Gilt für: durch Häkchen mit „Ja“ markiert Databricks SQL durch Häkchen mit „Ja“ markiert 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 von mapExpr 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