记录一次问题解决方案(并非最佳) 合并多条数据

序言

今天有个需求,类似于这样,有三条数据(并非真实生产数据,仅用于演示),分别是A,AA,AAA,A,AA,NULL,B,BB,BBB。需求是,将这三条数据,合并成两条:A,AA,AAA. B,BB,BBB。问题来了,在oracle中,不得不使用Group by 是select 中每个字段都需要使用Group by 的。所以这个问题困扰蛮久的。

解决之路

使用ORACLE函数可以解决这个问题。 listagg。但是得到的结果是。AA,AAAA,AAA.B,BB,BBB.这显然产品是不能接受的,我想到了DISTINCT。将其加上去也没有什么用处,最后写成了

 listagg(DISTINCT xxx,',')            as xx,

问题得到了解决,数据变成了 A,AA,AAA. B,BB,BBB

结束语

当一个问题困扰良久正好处于知识盲区的时候,不妨试试别的思路,将DISTINCT加在前面不行。那么加在里面呢?办法总比困难多。

你可能感兴趣的:(oracle,数据库)