- Catégories :
Fonctions de données semi-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).
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 | | } | +-------------------------+