定义与使用

函数 concat_ws() 将两个或多个表达式与分隔符添加在一起。

注:另请参阅 CONCAT() 函数。

语法1

1
concat_ws(string SEP, string A, string B...)

参数值

参数 说明
SEP 必填。在每个表达式之间添加的分隔符。如果分隔符为 NULL,则返回 NULL。
A,
B,
必填。要连接的字符串。值为 NULL 的字符串将被跳过。

示例

1
2
3
4
select 
concat_ws('-', 'Johnson', 'Lin'),
concat_ws('-', NULL, 'Lin'),
concat_ws(NULL, 'Johnson', 'Lin')

以上代码的查询结果为

1
2
3
4
5
+-----------+---+----+
|_c0 |_c1|_c2 |
+-----------+---+----+
|Johnson-Lin|Lin|NULL|
+-----------+---+----+

语法2

1
concat_ws(string SEP, array<string>)

参数值

参数 说明
SEP 必填。在每个表达式之间添加的分隔符。如果分隔符为 NULL,则返回 NULL。
array 必填。字符串数组。

技术细节

从 Hive 0.9.0 开始支持

示例 1

1
select concat_ws('_', array('rain', 'rain', 'go', 'away'))

以上代码的查询结果为

1
2
3
4
5
+-----------------+
|_c0 |
+-----------------+
|rain_rain_go_away|
+-----------------+

示例 2

1
select concat_ws('_', array('rain', 'rain', 'go', NULL, 'away'))

以上代码的查询结果为

1
2
3
4
5
+----------------------+
|_c0 |
+----------------------+
|rain_rain_go_null_away|
+----------------------+

(END)