Categorias:

Funções de dados semiestruturados e estruturados (Matriz/objeto)

ARRAYS_TO_OBJECT

Retorna um OBJECT que contém as chaves especificadas por uma entrada ARRAY e os valores especificados por outra ARRAY de entrada.

Sintaxe

ARRAYS_TO_OBJECT( <key_array> , <value_array> )
Copy

Argumentos

key_array

ARRAY de valores VARCHAR que especificam as chaves para o novo OBJECT.

value_array

ARRAY de valores para o novo OBJECT. Esta ARRAY deve ter o mesmo comprimento que key_array. Os valores nesta ARRAY devem corresponder às chaves em key_array.

Retornos

A função retorna um valor do tipo OBJECT. O OBJECT contém as chaves e os valores especificados por ARRAYs de entrada.

Notas de uso

  • Se algum elemento em key_array não for uma cadeia de caracteres, a função reportará o seguinte erro:

    215002 (22000): Key supplied for ARRAYS_TO_OBJECT does not have string type
    
  • key_array e value_array devem ter o mesmo comprimento. Caso contrário, a função reportará o seguinte erro:

    215001 (22000): Key array and value array had unequal lengths in ARRAYS_TO_OBJECT
    
  • Se um elemento em key_array for NULL, essa chave e o valor correspondente serão omitidos do OBJECT retornado.

    Se a chave não for NULL, mas o elemento correspondente em value_array for NULL, a chave e o valor NULL serão incluídos no OBJECT retornado.

  • O OBJECT retornado não preserva necessariamente a ordem original dos pares chave-valor.

  • Esta função não oferece suporte a um tipo estruturado como argumento de entrada.

Exemplos

O exemplo a seguir retorna um OBJECT que contém pares chave-valor especificados por duas ARRAYs de entrada:

SELECT ARRAYS_TO_OBJECT(['key1', 'key2', 'key3'], [1, 2, 3]);
Copy
+-------------------------------------------------------+
| ARRAYS_TO_OBJECT(['KEY1', 'KEY2', 'KEY3'], [1, 2, 3]) |
|-------------------------------------------------------|
| {                                                     |
|   "key1": 1,                                          |
|   "key2": 2,                                          |
|   "key3": 3                                           |
| }                                                     |
+-------------------------------------------------------+

No exemplo a seguir, a ARRAY das chaves inclui um valor NULL. Essa chave e o valor correspondente são omitidos do OBJECT retornado.

SELECT ARRAYS_TO_OBJECT(['key1', NULL, 'key3'], [1, 2, 3]);
Copy
+-----------------------------------------------------+
| ARRAYS_TO_OBJECT(['KEY1', NULL, 'KEY3'], [1, 2, 3]) |
|-----------------------------------------------------|
| {                                                   |
|   "key1": 1,                                        |
|   "key3": 3                                         |
| }                                                   |
+-----------------------------------------------------+

No exemplo a seguir, a ARRAY dos valores inclui um valor NULL. Esse valor e a chave correspondente são incluídos no OBJECT retornado.

SELECT ARRAYS_TO_OBJECT(['key1', 'key2', 'key3'], [1, NULL, 3]);
Copy
+----------------------------------------------------------+
| ARRAYS_TO_OBJECT(['KEY1', 'KEY2', 'KEY3'], [1, NULL, 3]) |
|----------------------------------------------------------|
| {                                                        |
|   "key1": 1,                                             |
|   "key2": null,                                          |
|   "key3": 3                                              |
| }                                                        |
+----------------------------------------------------------+