- Categorias:
Funções de dados semiestruturados e estruturados (Matriz/objeto)
ARRAY_COMPACT¶
Retorna uma matriz compactada com valores ausentes e nulos removidos, convertendo efetivamente matrizes esparsas em matrizes densas.
Sintaxe¶
ARRAY_COMPACT( <array1> )
Argumentos¶
array1
A matriz de origem.
Notas de uso¶
Dados semiestruturados (por exemplo, dados JSON) podem conter valores nulos explícitos, que são distintos de SQL NULLs. Um valor nulo em dados semiestruturados indica um valor em falta.
array1
deve ser ou um tipo de dados ARRAY ou um tipo de dados VARIANT contendo um valor de matriz.Se o argumento for NULL, o resultado será NULL.
Quando você passa uma ARRAY estruturada para a função, a função retorna uma ARRAY estruturada do mesmo tipo.
Exemplos¶
Este exemplo mostra como usar ARRAY_COMPACT()
:
Criar uma tabela e dados simples:
CREATE TABLE array_demo (ID INTEGER, array1 ARRAY, array2 ARRAY);INSERT INTO array_demo (ID, array1, array2) SELECT 2, ARRAY_CONSTRUCT(10, NULL, 30), ARRAY_CONSTRUCT(40);Executar a consulta:
SELECT array1, ARRAY_COMPACT(array1) FROM array_demo WHERE ID = 2; +--------------+-----------------------+ | ARRAY1 | ARRAY_COMPACT(ARRAY1) | |--------------+-----------------------| | [ | [ | | 10, | 10, | | undefined, | 30 | | 30 | ] | | ] | | +--------------+-----------------------+