sql:在一个列中聚合/收集字符串(使用一个查询)

9 浏览
0 Comments

sql:在一个列中聚合/收集字符串(使用一个查询)

可能是重复问题:

有没有一条Oracle SQL查询将多行聚合为一行?

在Oracle中生成连接字符串的快速方法

一个Oracle SQL初学者的问题

我有一个如下的表:

id1 A

id1 B

id1 C

id1 A

id2 A

id3 B

id3 A

我想要得到的结果是:

id1 A,B,C

id2 A

id3 B,A

我不能使用循环,我必须只用一个查询来实现

我使用的是Oracle DB v10(我知道这很重要,因为有关于这个的问题)。

0
0 Comments

问题:如何使用单个查询将一列中的字符串聚合在一起?

原因:无法在一个查询中使用多个表来使用wm_concat。

解决方法:使用wm_concat函数来解决这个问题。查询语句如下:

如果要保留重复值:

SELECT attr1, wm_concat(attr2) FROM YourTable GROUP BY field2;

如果要去除重复值:

SELECT attr1, wm_concat(distinct attr2) FROM YourTable GROUP BY field2;

0