将多个ARRAY数组中的所有元素连接在一起,生成一个新的ARRAY数组,或将多个字符串连接在一起,生成一个新的字符串。

命令格式

array<T> concat(array<T> <a>, array<T> <b>[,...])
string concat(string <str1>, string <str2>[,...])

参数说明

  • ab:必填。ARRAY数组。array<T>中的T指代ARRAY数组元素的数据类型,数组中的元素可以为任意类型。ab中元素的数据类型必须一致。数组中的元素为NULL值时会参与运算。

  • str1str2:必填。STRING类型。如果输入参数为BIGINT、DOUBLE、DECIMAL或DATETIME类型,则会隐式转换为STRING类型后参与运算,其他类型会返回报错。

返回值说明

  • 返回ARRAY类型。如果任一输入ARRAY数组为NULL,返回结果为NULL。

  • 返回STRING类型。如果没有参数或任一参数为NULL,返回结果为NULL。

使用示例

  • 示例1:连接ARRAY数组array(10, 20)array(20, -20)。命令示例如下。

    --返回[10, 20, 20, -20]。
    select concat(array(10, 20), array(20, -20));
  • 示例2:ARRAY数组元素包含NULL。命令示例如下。

    --返回[10, NULL, 20, -20]。
    select concat(array(10, null), array(20, -20));
  • 示例3:任一ARRAY数组为NULL。命令示例如下。

    --返回NULL。
    select concat(array(10, 20), null);
  • 示例4:连接字符串aabcabcde。命令示例如下。

    --返回aabcabcde。
    select concat('aabc','abcde');
  • 示例5:输入为空。命令示例如下。

    --返回NULL。
    select concat();
  • 示例6:任一字符串输入为NULL。命令示例如下。

    --返回NULL。
    select concat('aabc', 'abcde', null);

相关函数

CONCAT函数属于复杂类型函数或字符串函数。

  • 更多对复杂类型数据(例如ARRAY、MAP、STRUCT、JSON数据)的处理函数请参见复杂类型函数

  • 更多查找字符串、转换字符串格式的相关函数请参见字符串函数