
# concat
concat函数用于拼接数组或字符串。
#### 命令格式
输入为ARRAY数组：将多个ARRAY数组中的所有元素连接在一起，生成一个新的ARRAY数组。
```
concat(array , array [,...])
```
输入为字符串：将多个字符串连接在一起，生成一个新的字符串。
```
concat(string , string [,...])
```
#### 参数说明
**输入为ARRAY数组**
| 参数  | 是否必选 | 参数类型  | 说明                                                                                 |
|:---|:---|:---|:---|
| a、b | 是    | ARRAY | ARRAY数组。array中的T指代ARRAY数组元素的数据类型，数组中的元素可以为任意类型。a和b中元素的数据类型必须一致。数组中的元素为NULL值时会参与运算。 |
   
**输入为字符串**
| 参数        | 是否必选 | 参数类型   | 说明                                                                          |
|:---|:---|:---|:---|
| str1、str2 | 是    | STRING | 字符串。如果输入参数为BIGINT、DOUBLE、DECIMAL或DATETIME类型，则会自动转换为STRING类型后参与运算，其他类型会返回报错。 |
   
#### 返回值说明
返回ARRAY数组或STRING的值。
![](https://support.huaweicloud.com/sqlref-spark-aidatalake/public_sys-resources/note_3.0-zh-cn.png)
- 返回ARRAY类型。如果任一输入ARRAY数组为NULL，返回结果为NULL。
- 返回STRING类型。如果没有参数或任一参数为NULL，返回结果为NULL。
 
#### 示例代码
- 连接ARRAY数组array(1, 2)和array(2, -2)。命令示例如下。 返回\[1,2,2,-2\]。
  ```
  select concat(array(1, 2), array(2, -2));
  ```
  

- 连接字符串ABC和DEF。命令示例如下。 返回ABCDEF。
  ```
  select concat('ABC','DEF');
  ```
  

- 输入为空。命令示例如下。
  返回NULL。
  ```
  select concat();
  ```
  

- 任一字符串输入为NULL。命令示例如下。 返回NULL。
  ```
  select concat('abc', 'def', null);
  ```
  
 
