- Categorias:
Funções de conversão , Funções de dados semiestruturados e estruturados (Matriz/objeto)
TO_ARRAY¶
Converte a expressão de entrada em um valor ARRAY.
Sintaxe¶
TO_ARRAY( <expr> )
Argumentos¶
expr
Uma expressão de qualquer tipo de dados.
Retornos¶
Esta função retorna um valor do tipo ARRAY ou NULL:
Se a entrada for um ARRAY ou um VARIANT contendo um valor ARRAY, o valor será retornado inalterado.
Se
expr
for um valor NULL ou JSON nulo, a função retornará NULL.Para qualquer outro valor, o valor retornado é uma matriz de elemento único que contém esse valor.
Notas de uso¶
Para criar uma matriz que contenha mais de um elemento, você pode usar ARRAY_CONSTRUCT ou STRTOK_TO_ARRAY.
Exemplos¶
Crie uma tabela e insira dados chamando a função TO_ARRAY:
CREATE OR REPLACE TABLE array_demo_2 (
ID INTEGER,
array1 ARRAY,
array2 ARRAY);
INSERT INTO array_demo_2 (ID, array1, array2)
SELECT 1, TO_ARRAY(1), TO_ARRAY(3);
SELECT * FROM array_demo_2;
+----+--------+--------+
| ID | ARRAY1 | ARRAY2 |
|----+--------+--------|
| 1 | [ | [ |
| | 1 | 3 |
| | ] | ] |
+----+--------+--------+
Execute uma consulta que mostre as matrizes de elemento único criadas durante a inserção e o resultado da chamada a ARRAY_CAT para concatenar as duas matrizes:
SELECT array1, array2, ARRAY_CAT(array1, array2)
FROM array_demo_2;
+--------+--------+---------------------------+
| ARRAY1 | ARRAY2 | ARRAY_CAT(ARRAY1, ARRAY2) |
|--------+--------+---------------------------|
| [ | [ | [ |
| 1 | 3 | 1, |
| ] | ] | 3 |
| | | ] |
+--------+--------+---------------------------+
Este exemplo demonstra que TO_ARRAY converte uma expressão de entrada da cadeia de caracteres em uma matriz com um único elemento, mesmo quando a expressão de entrada inclui delimitadores (como vírgulas):
SELECT TO_ARRAY('snowman,snowball,snowcone') AS to_array_result;
+-------------------------------+
| TO_ARRAY_RESULT |
|-------------------------------|
| [ |
| "snowman,snowball,snowcone" |
| ] |
+-------------------------------+
Para converter a mesma expressão de entrada da cadeia de caracteres em uma matriz com vários elementos, você pode usar a função STRTOK_TO_ARRAY:
SELECT STRTOK_TO_ARRAY('snowman,snowball,snowcone', ',') AS strtok_to_array_result;
+------------------------+
| STRTOK_TO_ARRAY_RESULT |
|------------------------|
| [ |
| "snowman", |
| "snowball", |
| "snowcone" |
| ] |
+------------------------+