- Catégories :
Fonctions de données semi-structurées et structurées (tableau/objet)
ARRAY_SIZE¶
Renvoie la taille du tableau d’entrée.
Une variation de ARRAY_SIZE prend une valeur de VARIANT en entrée. Si la valeur VARIANT contient un tableau, sa taille est renvoyée ; sinon, NULL est renvoyé si la valeur n’est pas un tableau.
Syntaxe¶
ARRAY_SIZE( <array> )
ARRAY_SIZE( <variant> )
Renvoie¶
Le type de données de la valeur renvoyée est INTEGER
.
Notes sur l’utilisation¶
Prend une valeur ARRAY en entrée et renvoie la taille du tableau (c’est-à-dire le plus grand index + 1).
Si le tableau est un tableau clairsemé cela signifie que la taille inclut les éléments non définis ainsi que les éléments définis.
Un argument NULL renvoie NULL en conséquence.
Exemples¶
Voici un exemple simple :
SELECT ARRAY_SIZE(ARRAY_CONSTRUCT(1, 2, 3)) AS SIZE; +------+ | SIZE | |------| | 3 | +------+
Voici un exemple un peu plus complexe, utilisant cette fois le type de données VARIANT :
CREATE OR replace TABLE colors (v variant); INSERT INTO colors SELECT parse_json(column1) AS v FROM VALUES ('[{r:255,g:12,b:0},{r:0,g:255,b:0},{r:0,g:0,b:255}]'), ('[{r:255,g:128,b:0},{r:128,g:255,b:0},{r:0,g:255,b:128},{r:0,g:128,b:255},{r:128,g:0,b:255},{r:255,g:0,b:128}]') v;Récupérez la taille de chaque tableau dans la colonne VARIANT :
SELECT ARRAY_SIZE(v) from colors; +---------------+ | ARRAY_SIZE(V) | |---------------| | 3 | | 6 | +---------------+Récupérez le dernier élément de chaque tableau dans la colonne VARIANT :
SELECT GET(v, ARRAY_SIZE(v)-1) FROM colors; +-------------------------+ | GET(V, ARRAY_SIZE(V)-1) | |-------------------------| | { | | "b": 255, | | "g": 0, | | "r": 0 | | } | | { | | "b": 128, | | "g": 0, | | "r": 255 | | } | +-------------------------+