Renvoie une valeur issue d'un paramètre ARRAY ou MAP.
Format de la commande
INDEX (<var1>[<var2>])
Notes
Si var1 est un
array<T>, cette fonction récupère l'élément situé à l'index var2 dans var1. L'indexation des éléments du tableau commence à 0.Si var1 est un
map<K, V>, cette fonction récupère la valeur associée à la clé var2 dans var1.
Cette opération n'utilise pas le mot-clé
INDEX. Utilisez directement la syntaxe<var1>[<var2>]. Dans le cas contraire, une erreur est renvoyée.Si var1 est un tableau, var2 correspond à l'index. Si var1 est une map, var2 correspond à la clé.
Description des paramètres
var1 : Obligatoire. Un
array<T>oumap<K, V>. Dans unarray<T>, T spécifie le type de données des éléments du tableau.Tpeut être de n'importe quel type de données. Dans unmap<K, V>,KetVreprésentent respectivement les types de données des clés et des valeurs.-
var2 : Obligatoire.
Si var1 est un
array<T>, var2 doit être une valeur BIGINT non négative.Si var1 est un
map<K, V>, var2 doit avoir le même type de données que K.
Description de la valeur de retour
-
Si var1 est un
array<T>, la fonction renvoie une valeur de type T. Les règles suivantes s'appliquent :Si var2 se trouve en dehors des limites du tableau var1, la fonction renvoie NULL.
Si var1 est NULL, la fonction renvoie NULL.
-
Si var1 est un
map<K, V>, la fonction renvoie une valeur de type V. Les règles suivantes s'appliquent :Si la clé var2 n'existe pas dans le
map<K, V>, la fonction renvoie NULL.Si var1 est NULL, la fonction renvoie NULL.
Exemples d'utilisation
-
Exemple 1 : var1 est un
array<T>.-- Returns c. SELECT ARRAY('a','b','c')[2]; -
Exemple 2 : var1 est un
map<K, V>.-- Returns 1. SELECT STR_TO_MAP("test1=1,test2=2")["test1"];
Fonctions connexes
INDEX est une fonction de type complexe. Pour plus d'informations sur les fonctions qui traitent les types de données complexes, tels que ARRAY, MAP, STRUCT et JSON, consultez la rubrique Fonctions de type complexe.