Catégories :

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

MAP_ENTRIES

Renvoie une valeur ARRAY d’objets de paire clé-valeur pour chaque entrée dans une valeur MAP.

Syntaxe

MAP_ENTRIES( <map> )

Arguments

map

La valeur MAP d’entrée.

Renvoie

Renvoie une valeur ARRAY où chaque élément est un OBJECT avec un champ key et un champ value correspondant à une entrée de la valeur MAP d’entrée.

Si map est NULL, la fonction renvoie NULL.

Si map est vide, la fonction renvoie une valeur ARRAY vide.

L’ordre des entrées dans la valeur ARRAY renvoyée n’est pas définie.

Notes sur l’utilisation

  • La fonction accepte exactement un argument. L’appel de la fonction sans arguments ou avec plusieurs arguments entraîne une erreur.

Exemples

Renvoyer les entrées dans une valeur MAP en tant qu’objets de paire clé-valeur :

SELECT MAP_ENTRIES({'a': 1, 'b': 2}::MAP(VARCHAR, INT)) AS entries;
+-----------------+
| ENTRIES         |
|-----------------|
| [               |
|   {             |
|     "key": "a", |
|     "value": 1  |
|   },            |
|   {             |
|     "key": "b", |
|     "value": 2  |
|   }             |
| ]               |
+-----------------+

Renvoyer une valeur ARRAY vide pour une valeur MAP vide :

SELECT MAP_ENTRIES({}::MAP(VARCHAR, INT)) AS entries;
+---------+
| ENTRIES |
|---------|
| []      |
+---------+

Renvoyer les entrées dans une valeur MAP où les valeurs sont de type ARRAY :

SELECT MAP_ENTRIES({'a': [1, 2, 3], 'b': [4, 5]}::MAP(VARCHAR, ARRAY(INT))) AS entries;
+-----------------+
| ENTRIES         |
|-----------------|
| [               |
|   {             |
|     "key": "a", |
|     "value": [  |
|       1,        |
|       2,        |
|       3         |
|     ]           |
|   },            |
|   {             |
|     "key": "b", |
|     "value": [  |
|       4,        |
|       5         |
|     ]           |
|   }             |
| ]               |
+-----------------+

Renvoyer NULL pour une entrée NULL :

SELECT MAP_ENTRIES(NULL::MAP(VARCHAR, INT)) AS entries;
+---------+
| ENTRIES |
|---------|
| NULL    |
+---------+