- Catégories :
Fonctions de données semi-structurées et structurées (tableau/objet)
OBJECT_KEYS¶
Renvoie un tableau contenant la liste des clés du niveau le plus élevé de l’objet d’entrée.
Syntaxe¶
OBJECT_KEYS( <object> )
Arguments¶
Renvoie¶
La fonction renvoie un ARRAY contenant les clés.
Si object
est un OBJECT structuré, la fonction renvoie un ARRAY(VARCHAR).
Notes sur l’utilisation¶
Si l’objet contient des objets imbriqués (par exemple, des objets dans des objets), cela renvoie uniquement les clés du niveau le plus élevé.
Exemples¶
Exemple de base¶
L’exemple suivant montre que OBJECT_KEYS fonctionne à la fois avec un OBJECT et un VARIANT qui contient une valeur de type OBJECT.
Créez une table contenant des colonnes de types OBJECT et VARIANT.
CREATE TABLE objects_1 (id INTEGER, object1 OBJECT, variant1 VARIANT);Valeurs INSERT :
INSERT INTO objects_1 (id, object1, variant1) SELECT 1, OBJECT_CONSTRUCT('a', 1, 'b', 2, 'c', 3), TO_VARIANT(OBJECT_CONSTRUCT('a', 1, 'b', 2, 'c', 3)) ;Récupérez les clés du OBJECT et du VARIANT :
SELECT OBJECT_KEYS(object1), OBJECT_KEYS(variant1) FROM objects_1 ORDER BY id; +----------------------+-----------------------+ | OBJECT_KEYS(OBJECT1) | OBJECT_KEYS(VARIANT1) | |----------------------+-----------------------| | [ | [ | | "a", | "a", | | "b", | "b", | | "c" | "c" | | ] | ] | +----------------------+-----------------------+
Exemple d’objets imbriqués¶
Cet exemple montre que si l’objet contient des objets imbriqués, seules les clés du niveau le plus élevé sont renvoyées.
SELECT OBJECT_KEYS ( PARSE_JSON ( '{ "level_1_A": { "level_2": "two" }, "level_1_B": "one" }' ) ) AS keys ORDER BY 1; +----------------+ | KEYS | |----------------| | [ | | "level_1_A", | | "level_1_B" | | ] | +----------------+