Aller au contenu principal
Page traduite

Cette page a été traduite de l'anglais avec l'aide de l'IA. En cas de divergence, la version anglaise fait référence.

JSON_ARRAY_LENGTH

Renvoie le nombre d'éléments d'un tableau JSON.

Voir aussi :
[SELECT] [DESCRIBE] [JSON_EXTRACT] [ Types de données ]


astuce

Utilisez la fonction DESCRIBE pour repérer les types de données array ou object utilisables avec les fonctions JSON de StackQL. Utilisez la fonction JSON_TYPE pour déterminer les types de données des objets imbriqués ou des éléments de tableau.

Syntaxe​

SELECT JSON_ARRAY_LENGTH(json_array_or_object [, json_path]) FROM <multipartIdentifier>;

Arguments​

json_array_or_object
Un tableau ou un objet JSON.

Si json_array_or_object est un objet JSON (et non un tableau) et que json_path n'est pas spécifié, 0 est renvoyé.

json_path
Le chemin JSON facultatif vers un tableau contenu dans un objet. Consultez jsonpath.com.

Si json_path est fourni, la fonction json_array_length localise le chemin dans json_array_or_object et renvoie la longueur du tableau, ou 0 si json_path désigne un objet (et non un tableau). Si json_path est introuvable dans json_array_or_object, NULL est renvoyé.

Si json_array_or_object ou json_path ne sont pas des objets JSON ou ne sont pas bien formés, une erreur est levée.

Valeur(s) renvoyée(s)​

Renvoie un entier.


Exemples​

Renvoyer le nombre de disques attachés aux instances Google Compute Engine​

SELECT name, json_array_length(disks) as num_disks
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a';

Renvoyer le nombre d'interfaces réseau attachées aux instances Google Compute Engine​

SELECT name, json_array_length(networkInterfaces) as num_nics
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a';

Renvoyer le nombre d'ACL associées aux buckets Google Storage​

SELECT name, json_array_length(acl) as num_acls
FROM google.storage.buckets
WHERE project = 'stackql';

Renvoyer le nombre de scopes associés à un compte de service​

SELECT name, json_array_length(serviceAccounts, '$[0].scopes') as num_scopes
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a';

Pour plus d'informations, consultez https://www.sqlite.org/json1.html#jarraylen