カテゴリ:

半構造化データ関数と構造化データ関数 (配列/オブジェクト)

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"  |
| ]            | ]            |
+--------------+--------------+