类别:

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

ARRAY_APPEND

返回一个包含源数组的所有元素以及新元素的数组。新元素位于数组的末尾。

另请参阅:

ARRAY_INSERTARRAY_PREPEND

语法

ARRAY_APPEND( <array> , <new_element> )
Copy

实参

array

源数组。

new_element

要追加的元素。元素的类型取决于数组的类型:

  • 如果 array半结构化数组,则该元素几乎可以是任何数据类型。数据类型可以与数组中现有元素的数据类型不同。

  • 如果 array结构化数组,则新元素的类型必须对该数组类型具有 强制性

返回

返回值的数据类型是 ARRAY。

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

如果源数组是 NULL,则函数返回 NULL。

示例

这些示例使用具有 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;
Copy
+--------------+
| ARRAY_COLUMN |
|--------------|
| [            |
|   1,         |
|   2,         |
|   3          |
| ]            |
+--------------+

向数组中添加相同类型的元素:

UPDATE array_append_examples
  SET array_column = ARRAY_APPEND(array_column, 4);
Copy

查询表以查看添加到数组的新元素:

SELECT * FROM array_append_examples;
Copy
+--------------+
| ARRAY_COLUMN |
|--------------|
| [            |
|   1,         |
|   2,         |
|   3,         |
|   4          |
| ]            |
+--------------+

向数组中添加不同类型的元素:

UPDATE array_append_examples
  SET array_column = ARRAY_APPEND(array_column, 'five');
Copy

查询表以查看添加到数组的新元素以及数组中每个元素的数据类型:

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;
Copy
+--------------+--------------+
| ARRAY_COLUMN | TYPE         |
|--------------+--------------|
| [            | [            |
|   1,         |   "INTEGER", |
|   2,         |   "INTEGER", |
|   3,         |   "INTEGER", |
|   4,         |   "INTEGER", |
|   "five"     |   "VARCHAR"  |
| ]            | ]            |
+--------------+--------------+
语言: 中文