- 类别:
半结构化和结构化数据函数 (数组/对象)
ARRAY_CONSTRUCT¶
返回由零个、一个或多个输入构造的数组。
有关构建和使用数组的更多信息,请参阅 ARRAY。
语法¶
ARRAY_CONSTRUCT( [ <expr1> ] [ , <expr2> [ , ... ] ] )
实参¶
实参是值(或计算结果为值的表达式)。参数值可以是不同的数据类型。
返回¶
返回值的数据类型是 ARRAY。
使用说明¶
如果调用该函数时带有
N
个实参,则生成的数组大小为N
。在许多情况下,可以使用 :ref:`ARRAY 常量 <label-array_constant>`(也称为 ARRAY 字面量)来代替 ARRAY_CONSTRUCT 函数。
示例¶
构造一个由数值数据类型组成的基本数组:
SELECT ARRAY_CONSTRUCT(10, 20, 30);
+-----------------------------+
| ARRAY_CONSTRUCT(10, 20, 30) |
|-----------------------------|
| [ |
| 10, |
| 20, |
| 30 |
| ] |
+-----------------------------+
构造一个由不同数据类型组成的基本数组:
SELECT ARRAY_CONSTRUCT(NULL, 'hello', 3::DOUBLE, 4, 5);
+-------------------------------------------------+
| ARRAY_CONSTRUCT(NULL, 'HELLO', 3::DOUBLE, 4, 5) |
|-------------------------------------------------|
| [ |
| undefined, |
| "hello", |
| 3.000000000000000e+00, |
| 4, |
| 5 |
| ] |
+-------------------------------------------------+
构造一个空数组:
SELECT ARRAY_CONSTRUCT();
+-------------------+
| 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;
+----+--------------+
| ID | ARRAY_COLUMN |
|----+--------------|
| 1 | [ |
| | 1, |
| | 2, |
| | 3 |
| | ] |
| 2 | [ |
| | 4, |
| | 5, |
| | 6 |
| | ] |
| 3 | [ |
| | 7, |
| | 8, |
| | 9 |
| | ] |
+----+--------------+