【hive】中的concat函式

李太陽❀發表於2018-12-19

與concat有關的函式有三個:
1、concat()
2、concat_ws()
3、group_concat()

concat(str1,str2,str3,…)

連線引數的函式,返回結果為連線引數的字串。如果有一個引數為NULL,則返回的結果為NULL。

concat(‘a’,‘b’,‘c’) ---- ‘abc’
concat(’‘a,null,’'c)----null

concat_ws(‘分隔符’,str1,str2,…)

concat()的一個特殊形式,表示concat with separator,兩個引數之間加上特定的分隔符。返回的是用指定分隔符連線引數的字串。如果分割符為null,則返回null,引數為null,則忽略該引數。

concat_ws(’’/,’‘2018,’‘12,’'19)----2018/12/19
concat_ws(’’:,’'22,‘47’,null)----22:47
concat_ws(null,’'22,‘47’)----null

group_concat(str1,[order by str3],[separator ‘分隔符’])

把相同組的字串以特定分隔符連線為一行。具體用法為:

資料
id|name
1|bob
1|anna
1|helen
2|tom
2|baby
2|tom
按id分組,把name連線為一行
select id,group_concat(name)
1|bobannahelen
2|tombabytom
按id分組,把name連線為一行,並按name升序
select id,group_concat(name order by name asc)
1|annabobhelen
2|babytomtom
按id分組,name去重並連線為一行,按name升序,用逗號分隔
select id,group_concat(distinct name order by name asc separator ‘,’)
1|anna,bob,helen
2|baby,tom

相關文章