- Catégories :
Fonctions de données semi-structurées et structurées (tableau/objet)
OBJECT_PICK¶
Renvoie un nouvel OBJECT contenant certaines des paires clé-valeur d’un objet existant.
Pour identifier les paires clé-valeur à inclure dans le nouvel objet, validez les clés comme arguments ou validez un tableau contenant les clés.
Si une clé spécifiée n’est pas présente dans l’objet d’entrée, la clé est ignorée.
Syntaxe¶
OBJECT_PICK( <object>, <key1> [, <key2>, ... ] )
OBJECT_PICK( <object>, <array> )
Arguments¶
object
L’objet d’entrée.
key1
,key2
Une ou plusieurs clés identifiant les paires clé-valeur qui doivent être incluses dans l’objet renvoyé.
array
Tableau de clés identifiant les paires clé-valeur qui doivent être incluses dans l’objet renvoyé.
Renvoie¶
Renvoie un nouvel OBJECT contenant les paires clé-valeur spécifiées.
Notes sur l’utilisation¶
Pour des OBJECTs structurés :
Pour les arguments qui sont des clés, vous devez spécifier des constantes.
Vous ne pouvez pas transmettre un ARRAY de clés comme deuxième argument. Vous devez spécifier chaque clé sous la forme d’un argument distinct.
La fonction renvoie un OBJECT structuré. Le type de l’OBJECT comprend les clés dans l’ordre dans lequel elles sont spécifiées.
Supposons, par exemple, que vous sélectionniez les clés
state
etcity
dans cet ordre :SELECT OBJECT_PICK( {'city':'San Mateo','state':'CA','zip_code':94402}::OBJECT(city VARCHAR,state VARCHAR,zip_code DOUBLE), 'state', 'city') AS new_object, SYSTEM$TYPEOF(new_object);
La fonction renvoie un OBJECT du type
OBJECT(state VARCHAR, city VARCHAR)
.+-----------------------+--------------------------------------------------------------+ | NEW_OBJECT | SYSTEM$TYPEOF(NEW_OBJECT) | |-----------------------+--------------------------------------------------------------| | { | OBJECT(state VARCHAR(16777216), city VARCHAR(16777216))[LOB] | | "state": "CA", | | | "city": "San Mateo" | | | } | | +-----------------------+--------------------------------------------------------------+
Exemples¶
L’exemple suivant appelle OBJECT_PICK pour créer un nouvel objet qui contient deux des trois paires clé-valeur à partir d’un objet existant :
SELECT OBJECT_PICK( OBJECT_CONSTRUCT( 'a', 1, 'b', 2, 'c', 3 ), 'a', 'b' ) AS new_object; +------------+ | NEW_OBJECT | |------------| | { | | "a": 1, | | "b": 2 | | } | +------------+
Dans l’exemple ci-dessus, les clés sont validées comme arguments dans OBJECT_PICK. Vous pouvez également utiliser un tableau pour spécifier les clés, comme indiqué ci-dessous :
SELECT OBJECT_PICK( OBJECT_CONSTRUCT( 'a', 1, 'b', 2, 'c', 3 ), ARRAY_CONSTRUCT('a', 'b') ) AS new_object; +------------+ | NEW_OBJECT | |------------| | { | | "a": 1, | | "b": 2 | | } | +------------+