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> )
Copy

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);
Copy
INSERT INTO array_demo (ID, array1, array2) 
    SELECT 2, ARRAY_CONSTRUCT(10, NULL, 30), ARRAY_CONSTRUCT(40);
Copy

Executar a consulta:

SELECT array1, ARRAY_COMPACT(array1) FROM array_demo WHERE ID = 2;
+--------------+-----------------------+
| ARRAY1       | ARRAY_COMPACT(ARRAY1) |
|--------------+-----------------------|
| [            | [                     |
|   10,        |   10,                 |
|   undefined, |   30                  |
|   30         | ]                     |
| ]            |                       |
+--------------+-----------------------+
Copy