カテゴリ:

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

ARRAY_CONSTRUCT

0、1、または複数の入力から構築された配列を返します。

配列の構築と使用の詳細については、 ARRAY をご参照ください。

こちらもご参照ください。

ARRAY_CONSTRUCT_COMPACT

構文

ARRAY_CONSTRUCT( [ <expr1> ] [ , <expr2> [ , ... ] ] )
Copy

引数

引数は値(または値に評価される式)です。引数の値は異なるデータ型を使用できます。

戻り値

戻り値のデータ型は ARRAY です。

使用上の注意

  • 関数が N 個の引数で呼び出された場合、結果の配列のサイズは N です。

  • 多くのコンテキストでは、ARRAY_CONSTRUCT関数の代わりに ARRAY定数ARRAYリテラル とも呼ばれます)を使用できます。

数値データ型で構成される基本的な配列を作成します。

SELECT ARRAY_CONSTRUCT(10, 20, 30);
Copy
+-----------------------------+
| ARRAY_CONSTRUCT(10, 20, 30) |
|-----------------------------|
| [                           |
|   10,                       |
|   20,                       |
|   30                        |
| ]                           |
+-----------------------------+

異なるデータ型で構成される基本的な配列を作成します。

SELECT ARRAY_CONSTRUCT(NULL, 'hello', 3::DOUBLE, 4, 5);
Copy
+-------------------------------------------------+
| ARRAY_CONSTRUCT(NULL, 'HELLO', 3::DOUBLE, 4, 5) |
|-------------------------------------------------|
| [                                               |
|   undefined,                                    |
|   "hello",                                      |
|   3.000000000000000e+00,                        |
|   4,                                            |
|   5                                             |
| ]                                               |
+-------------------------------------------------+

空の配列を作成します。

SELECT ARRAY_CONSTRUCT();
Copy
+-------------------+
| ARRAY_CONSTRUCT() |
|-------------------|
| []                |
+-------------------+

テーブルを作成し、 ARRAY 列に配列を挿入します。

CREATE OR REPLACE TABLE construct_array_example (id INT, array_column ARRAY);

INSERT INTO construct_array_example (id, array_column)
  SELECT 1,
         ARRAY_CONSTRUCT(1, 2, 3);

INSERT INTO construct_array_example (id, array_column)
  SELECT 2,
         ARRAY_CONSTRUCT(4, 5, 6);

INSERT INTO construct_array_example (id, array_column)
  SELECT 3,
         ARRAY_CONSTRUCT(7, 8, 9);

SELECT * FROM construct_array_example;
Copy
+----+--------------+
| ID | ARRAY_COLUMN |
|----+--------------|
|  1 | [            |
|    |   1,         |
|    |   2,         |
|    |   3          |
|    | ]            |
|  2 | [            |
|    |   4,         |
|    |   5,         |
|    |   6          |
|    | ]            |
|  3 | [            |
|    |   7,         |
|    |   8,         |
|    |   9          |
|    | ]            |
+----+--------------+