Catégories :

Fonctions de données semi-structurées et structurées (Carte)

MAP_PICK

Renvoie une nouvelle MAP contenant les paires clé-valeur spécifiées d’une MAP existante.

Pour identifier les paires clé-valeur à inclure dans la nouvelle carte, transmettez les clés comme arguments ou transmettez un tableau contenant les clés.

Si une clé spécifiée n’est pas présente dans la carte d’entrée, la clé est ignorée.

Syntaxe

MAP_PICK( <map>, <key1> [, <key2>, ... ] )

MAP_PICK( <map>, <array> )
Copy

Arguments

map

La carte d’entrée.

key1,key2

Une ou plusieurs clés identifiant les paires clé-valeur à inclure dans la carte renvoyée.

array

Un tableau de clés identifiant les paires clé-valeur à inclure dans la carte renvoyée. Vous pouvez spécifier un ARRAY semi-structuré ou un ARRAY structuré.

Renvoie

Renvoie une nouvelle MAP contenant certaines des paires clé-valeur d’une MAP existante.

Exemples

Créer une nouvelle carte contenant deux des trois paires clé-valeur d’une carte existante :

SELECT MAP_PICK({'a':1,'b':2,'c':3}::MAP(VARCHAR,NUMBER),'a', 'b')
  AS new_map;
Copy
+-----------+
| NEW_MAP   |
|-----------|
| {         |
|   "a": 1, |
|   "b": 2  |
| }         |
+-----------+

Dans l’exemple précédent, les clés sont transmises comme arguments à MAP_PICK. Vous pouvez également utiliser un tableau pour spécifier les clés :

SELECT MAP_PICK({'a':1,'b':2,'c':3}::MAP(VARCHAR,NUMBER), ['a', 'b'])
  AS new_map;
Copy
+-----------+
| NEW_MAP   |
|-----------|
| {         |
|   "a": 1, |
|   "b": 2  |
| }         |
+-----------+