跳到主要内容
版本: 最新版本-3.5

array_concat

将多个数组连接成一个包含所有数组元素的数组。

要连接的数组中的元素可以是相同类型或不同类型。 但是,我们建议元素是相同的类型。

Null 值被视为正常值处理。

语法

array_concat(input0, input1, ...)

参数

input: 您要连接的一个或多个数组。 以 (input0, input1, ...) 格式指定数组。 此函数支持以下类型的数组元素:BOOLEAN、TINYINT、SMALLINT、INT、BIGINT、LARGEINT、FLOAT、DOUBLE、VARCHAR、DECIMALV2、DATETIME、DATE 和 JSON。 2.5 版本开始支持 JSON。

返回值

返回一个包含由 input 参数指定的数组中保存的所有元素的数组。 返回的数组的元素与输入数组的元素具有相同的数据类型。 此外,返回的数组的元素遵循输入数组及其元素的顺序。

示例

示例 1:连接包含数字元素的数组。

select array_concat([57.73,97.32,128.55,null,324.2], [3], [5]) as res;

+-------------------------------------+

| res |

+-------------------------------------+

| [57.73,97.32,128.55,null,324.2,3,5] |

+-------------------------------------+

示例 2:连接包含字符串元素的数组。

select array_concat(["sql","storage","execute"], ["Query"], ["Vectorized", "cbo"]);

+----------------------------------------------------------------------------+

| array_concat(['sql','storage','execute'], ['Query'], ['Vectorized','cbo']) |

+----------------------------------------------------------------------------+

| ["sql","storage","execute","Query","Vectorized","cbo"] |

+----------------------------------------------------------------------------+

示例 3:连接两种不同类型的数组。

select array_concat([57,65], ["pear","apple"]);
+-------------------------------------------+
| array_concat([57, 65], ['pear', 'apple']) |
+-------------------------------------------+
| ["57","65","pear","apple"] |
+-------------------------------------------+

示例 4:将 Null 值作为正常值处理。

select array_concat(["sql",null], [null], ["Vectorized", null]);

+---------------------------------------------------------+

| array_concat(['sql',NULL], [NULL], ['Vectorized',NULL]) |

+---------------------------------------------------------+

| ["sql",null,null,"Vectorized",null] |

+---------------------------------------------------------+