- 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> )
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 emkey_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
evalue_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]);
+-------------------------------------------------------+
| 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]);
+-----------------------------------------------------+
| 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]);
+----------------------------------------------------------+
| ARRAYS_TO_OBJECT(['KEY1', 'KEY2', 'KEY3'], [1, NULL, 3]) |
|----------------------------------------------------------|
| { |
| "key1": 1, |
| "key2": null, |
| "key3": 3 |
| } |
+----------------------------------------------------------+