Fonction element_at
S’applique à : Databricks SQL 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 demapExpr
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. - La fonction déclenche une erreur INVALID_ARRAY_INDEX_IN_ELEMENT_AT si la valeur
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.
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), 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