- Categorias:
Funções de dados semiestruturados e estruturados (Matriz/objeto)
ARRAY_APPEND¶
Retorna uma matriz contendo todos os elementos da matriz de origem, bem como o novo elemento. O novo elemento está localizado no final da matriz.
- Consulte também:
Sintaxe¶
ARRAY_APPEND( <array> , <new_element> )
Argumentos¶
array
A matriz de origem.
new_element
O elemento a ser anexado. O tipo do elemento depende do tipo da matriz:
Se
array
for uma matriz semiestruturada, o elemento poderá ser de praticamente qualquer tipo de dados. O tipo de dados pode ser diferente do(s) tipo(s) de dados dos elementos existentes na matriz.Se
array
for uma matriz estruturada, o tipo do novo elemento deverá ser coercitivo com o tipo da matriz.
Retornos¶
O tipo de dados do valor retornado é ARRAY.
Quando você passa uma matriz estruturada para a função, a função retorna uma matriz estruturada do mesmo tipo.
Se a matriz de origem for NULL, a função retornará NULL.
Exemplos¶
Os exemplos usam a tabela a seguir com uma coluna ARRAY:
CREATE OR REPLACE TABLE array_append_examples (array_column ARRAY);
INSERT INTO array_append_examples (array_column)
SELECT ARRAY_CONSTRUCT(1, 2, 3);
SELECT * FROM array_append_examples;
+--------------+
| ARRAY_COLUMN |
|--------------|
| [ |
| 1, |
| 2, |
| 3 |
| ] |
+--------------+
Adiciona um elemento do mesmo tipo à matriz:
UPDATE array_append_examples
SET array_column = ARRAY_APPEND(array_column, 4);
Consulte a tabela para ver o novo elemento adicionado à matriz:
SELECT * FROM array_append_examples;
+--------------+
| ARRAY_COLUMN |
|--------------|
| [ |
| 1, |
| 2, |
| 3, |
| 4 |
| ] |
+--------------+
Adicione um elemento de um tipo diferente à matriz:
UPDATE array_append_examples
SET array_column = ARRAY_APPEND(array_column, 'five');
Consulte a tabela para ver o novo elemento adicionado à matriz e o tipo de dados de cada elemento da matriz:
SELECT array_column,
ARRAY_CONSTRUCT(
TYPEOF(array_column[0]),
TYPEOF(array_column[1]),
TYPEOF(array_column[2]),
TYPEOF(array_column[3]),
TYPEOF(array_column[4])) AS type
FROM array_append_examples;
+--------------+--------------+
| ARRAY_COLUMN | TYPE |
|--------------+--------------|
| [ | [ |
| 1, | "INTEGER", |
| 2, | "INTEGER", |
| 3, | "INTEGER", |
| 4, | "INTEGER", |
| "five" | "VARCHAR" |
| ] | ] |
+--------------+--------------+