Fonction element_at

S’applique à :case marquée oui Databricks SQL case marquée oui Databricks Runtime

Retourne l’élément d’un arrayExpr à index.

Retourne la valeur de mapExpr pour key.

Syntaxe

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

Arguments

  • arrayExpr : expression ARRAY.
  • index : expression de type INTEGER.
  • mapExpr : expression de type MAP.
  • key : expression correspondant au type des clés de mapExpr

Retours

Si le premier argument est un tableau (ARRAY) :

  • Le résultat est du type des éléments de expr.
  • La valeur abs(index) doit être comprise entre 1 et la longueur du tableau.
  • Si la valeur index est négative, la fonction accède aux éléments du dernier au premier.
  • Azure Databricks déclenche INVALID_INDEX_OF_ZERO si index est 0.
  • Azure Databricks déclenche INVALID_ARRAY_INDEX_IN_ELEMENT_AT si abs(index) dépasse la longueur du tableau.

Si le premier argument est un MAP et si key ne peut pas être mis en correspondance avec une entrée dans mapExpr, la fonction retourne Null.

Notes

Dans Databricks Runtime, si spark.sql.ansi.failOnElementNotExists a la valeur false, la fonction retourne NULL au lieu de déclencher des erreurs.

Conditions d’erreur courantes

Exemples

> 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