Categorias:

Funções de dados semiestruturados e estruturados (Mapa)

MAP_ENTRIES

Retorna um valor ARRAY de objetos de par chave-valor para cada entrada em um valor MAP.

Sintaxe

MAP_ENTRIES( <map> )

Argumentos

map

O valor MAP de entrada.

Retornos

Retorna um valor ARRAY, em que cada elemento é um OBJECT com um campo key e value correspondente a uma entrada no valor MAP de entrada.

Se map for NULL, a função retornará NULL.

Se map estiver vazio, a função retornará um valor ARRAY vazio.

A ordem das entradas no valor ARRAY retornado é indefinida.

Notas de uso

  • A função aceita exatamente um argumento. Chamar a função sem argumentos ou com mais de um argumento resulta em erro.

Exemplos

Retornar as entradas em um valor MAP como objetos de par chave-valor:

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

Retornar um valor ARRAY vazio para um valor MAP vazio:

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

Retornar as entradas em um MAP em que os valores são do tipo 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         |
|     ]           |
|   }             |
| ]               |
+-----------------+

Retornar NULL para uma entrada NULL:

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