Delen via


element_at-functie

Van toepassing op: vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime

Retourneert het element van een arrayExpr at index.

Retourneert de waarde van mapExpr voor key.

Syntaxis

element_at(arrayExpr, index)
element_at(mapExpr, key)

Argumenten

  • arrayExpr: Een MATRIX-expressie.
  • index: Een INTEGER-expressie.
  • mapExpr: Een MAP-expressie.
  • key: Een expressie die overeenkomt met het type sleutels van mapExpr

Retouren

Als het eerste argument een MATRIX is:

  • Het resultaat is van het type van de elementen van expr.
  • abs(index) moet tussen 1 en de lengte van de matrix zijn.
  • Als index dit negatief is, krijgt de functie toegang tot elementen van de laatste tot de eerste.
  • De functie genereert INVALID_ARRAY_INDEX_IN_ELEMENT_AT fout als abs(index) de lengte van de matrix wordt overschreden.

Als het eerste argument een MAP is en key niet kan worden vergeleken met een vermelding in mapExpr de functie, retourneert null.

Notitie

Als in Databricks Runtime spark.sql.ansi.failOnElementNotExists false de functie wordt geretourneerd NULL in plaats van fouten op te geven.

Voorbeelden

> 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