字符串连接函数party:||、listagg、concat、group_concat、string_agg()、collect_list、collect_set

第一,不分组连接:listaggconcat

Listagg:——对一个字段

  • oracle/db2
  • 用来连接一个字段的所有值,所以为了不重复常会加distinct

Concat——对几个字段

  • mysql/db2

例子:SELECT CONCAT('a','b')  --ab

注:

若要在DB2中实现两个以上字段相连接,有两种方法

  1. ||

 2、用两次concat

第二:分组连接:collect_list、collect_set、group_concat、listagg()within group(order by )

  1、collect_list、collect_set  ——hive

  • hive中的分组连接
  • 可以返回一个数组
  • 具体见hive页的记录

Hive笔记之collect_list/collect_set(列转行) - CC11001100 - 博客园 (cnblogs.com)

 2、listagg() within group(order by c)  ——oracle

2020-11-02 oracle sql listagg函数使用_爱学习的ljz的博客-优快云博客

3、group_concat  ——mysql

mysql和oracle之间的改写

select

  dept,

group_concat ( id ORDER BY age separator ',' ) ids, 
 --按dept分组,按age的顺序,以','为分隔符连接各个部门的ID

group_concat ( name ORDER BY age separator ',' ) names,
--按dept分组,按age的顺序,以','为分隔符连接各个部门的name

from users  group by dept

相当于

select dept,

listagg(id,',') within group(order by age) ids ,

listagg(name,',') within group(order by age) names

from users group by dept

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值