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> )
Copy

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 et city 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);
    
    Copy

    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   |
| }          |
+------------+
Copy

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   |
| }          |
+------------+
Copy