Kategorien:

Funktionen für semistrukturierte und strukturierte Daten (Zuordnung/Map)

MAP_ENTRIES

Gibt einen ARRAY-Wert von Schlüssel-Wert-Paar-Objekten für jeden Eintrag in einem MAP-Wert zurück.

Syntax

MAP_ENTRIES( <map> )

Argumente

map

Der Eingabe-MAP-Wert.

Rückgabewerte

Gibt einen ARRAY-Wert zurück, bei dem jedes Element ein OBJECT mit einem key-Feld und einem value-Feld ist, das einem Eintrag im Eingabe-MAP-Wert entspricht.

Wenn map den Wert NULL hat, gibt die Funktion NULL zurück.

Wenn map leer ist, gibt die Funktion einen leeren ARRAY-Wert zurück.

Die Reihenfolge der Einträge im zurückgegebenen ARRAY-Wert ist undefiniert.

Nutzungshinweise

  • Die Funktion akzeptiert genau ein Argument. Das Aufrufen der Funktion ohne Argumente oder mit mehr als einem Argument führt zu einem Fehler.

Beispiele

Rückgabe der Einträge in einem MAP-Wert als Schlüssel-Wert-Paar-Objekte:

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

Rückgabe eines leeren ARRAY-Werts für einen leeren MAP-Wert:

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

Rückgabe der Einträge in einer MAP, wobei die Werte vom Typ ARRAY sind:

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

Rückgabe von NULL für eine NULL-Eingabe:

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