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.
  • Azure Databricks löst INVALID_INDEX_OF_ZERO aus, wenn index 0 ist.
  • Azure Databricks löst INVALID_ARRAY_INDEX_IN_ELEMENT_AT aus, wenn abs(index) die Länge des Arrays überschreitet.

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.

Häufige Fehlerbedingungen

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), 0);
 Error: INVALID_INDEX_OF_ZERO

> 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