- Catégories :
Fonctions de données semi-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¶
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" | | ] | +----------------+