Categorias:

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

MAP_PICK

Retorna um novo MAP contendo os pares chave-valor especificados de um MAP existente.

Para identificar os pares chave-valor a serem incluídos no novo mapa, passe nas chaves como argumentos, ou passe em uma matriz contendo as chaves.

Se uma chave especificada não estiver presente no mapa de entrada, a chave é ignorada.

Sintaxe

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

MAP_PICK( <map>, <array> )
Copy

Argumentos

map

O mapa de entrada.

key1,key2

Uma ou mais chaves que identificam os pares chave-valor a serem incluídos no mapa retornado.

array

Uma matriz de chaves que identifica os pares chave-valor a serem incluídos no mapa retornado. Você pode especificar uma ARRAY semiestruturada ou um ARRAY estruturada.

Retornos

Retorna um novo MAP contendo alguns dos pares chave-valor de um MAP existente.

Exemplos

Crie um novo mapa que contenha dois dos três pares chave-valor de um mapa existente:

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

No exemplo anterior, as chaves são passadas como argumentos para MAP_PICK. Você também pode usar uma matriz para especificar as chaves:

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