oracle中实现某个字段的多个值融合成另一个字段的值并逗号隔开

1.场景复现
我现在有这样的数据(简单例子)
在这里插入图片描述
然后需求是变成这个样子
在这里插入图片描述
2.oracle实现sql

   select DISTINCT
        a.ID,
        RTRIM(LISTAGG(to_char(b.UNIT_NAME), ',') WITHIN GROUP(ORDER BY b.UNIT_NAME)over (partition by a.ID ),'、')AS executeUnit
        from  TASK_ACTUAL_SEND a, TASK_SEND_UNIT b
        where a.ID=b.TASK_ACTUAL_SEND_ID

执行结果:
在这里插入图片描述
3.涉及技术
我这里最主要是使用oracle中的RTRIM函数和LISTAGG函数,下边这段代码是核心的使用方式

 RTRIM(LISTAGG(to_char(b.UNIT_NAME), ',') WITHIN GROUP(ORDER BY b.UNIT_NAME)over (partition by a.ID ),'、')AS executeUnit
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐