Filtrage des tableaux contenant des valeurs imbriquées
Les grands tableaux contiennent souvent des structures imbriquées et vous devez pouvoir y filtrer ou y rechercher des valeurs.
Pour définir un ensemble de données pour un tableau de valeurs qui inclut une valeur BOOLEAN imbriquée, exécutez cette requête :
WITH dataset AS ( SELECT CAST( ROW('aws.amazon.com', ROW(true)) AS ROW(hostname VARCHAR, flaggedActivity ROW(isNew BOOLEAN)) ) AS sites ) SELECT * FROM dataset
Elle renvoie le résultat suivant :
+----------------------------------------------------------+
| sites |
+----------------------------------------------------------+
| {HOSTNAME=aws.amazon.com, FLAGGEDACTIVITY={ISNEW=true}} |
+----------------------------------------------------------+Ensuite, pour filtrer la valeur BOOLEAN de cet élément et y accéder, continuez à utiliser la notation . (point).
WITH dataset AS ( SELECT CAST( ROW('aws.amazon.com', ROW(true)) AS ROW(hostname VARCHAR, flaggedActivity ROW(isNew BOOLEAN)) ) AS sites ) SELECT sites.hostname, sites.flaggedactivity.isnew FROM dataset
Cette requête sélectionne les champs imbriqués et renvoie les résultats suivants :
+------------------------+
| hostname | isnew |
+------------------------+
| aws.amazon.com | true |
+------------------------+