类别:

半结构化和结构化数据函数 (数组/对象)

ARRAY_COMPACT

返回一个移除了缺失值和 null 值的紧凑数组,从而有效地将稀疏数组转换为密集数组。

语法

ARRAY_COMPACT( <array1> )
Copy

实参

array1

源数组。

使用说明

  • 半结构化数据(例如 JSON 数据)可以包含显式空值,这些值与 SQL NULLs 不同。半结构化数据中的空值表示缺少值。

  • array1 应为 ARRAY 数据类型或包含数组值的 VARIANT 数据类型。

  • 如果实参为 NULL,则结果为 NULL。

  • 当您将 结构化 ARRAY 传递给该函数时,该函数会返回相同类型的结构化 ARRAY。

示例

此示例说明如何使用 ARRAY_COMPACT()

创建简单的表和数据:

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

执行查询:

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