- 类别:
半结构化和结构化数据函数 (数组/对象)
ARRAY_APPEND¶
返回一个包含源数组的所有元素以及新元素的数组。新元素位于数组的末尾。
语法¶
ARRAY_APPEND( <array> , <new_element> )
实参¶
返回¶
返回值的数据类型是 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;
+--------------+
| ARRAY_COLUMN |
|--------------|
| [ |
| 1, |
| 2, |
| 3 |
| ] |
+--------------+
向数组中添加相同类型的元素:
UPDATE array_append_examples
SET array_column = ARRAY_APPEND(array_column, 4);
查询表以查看添加到数组的新元素:
SELECT * FROM array_append_examples;
+--------------+
| ARRAY_COLUMN |
|--------------|
| [ |
| 1, |
| 2, |
| 3, |
| 4 |
| ] |
+--------------+
向数组中添加不同类型的元素:
UPDATE array_append_examples
SET array_column = ARRAY_APPEND(array_column, 'five');
查询表以查看添加到数组的新元素以及数组中每个元素的数据类型:
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" |
| ] | ] |
+--------------+--------------+