可能重复:
Oracle: Combine multiple results in a subquery into a single comma-separated value
你好,
这是我的问题......
我有一张桌子:
+------+------+------+
| CODE | NAME | TYPE |
+------+------+------+
| 1 | AAA | x |
+------+------+------+
| 2 | BBB | x |
+------+------+------+
| 3 | CCC | y |
+------+------+------+
| 4 | DDD | y |
+------+------+------+
我想在ORACLE中查看...我希望结果是:
+---------+------+
| NAME | TYPE |
+---------+------+
| AAA;BBB | x |
+---------+------+
| CCC;DDD | y |
+---------+------+
我可以对AAA和BBB进行分组,因为它们在VIEW中具有相同的TYPE,在NAME中将是“AAA; BBB”...因此将各种名称分组;
任何人都可以帮助我吗?
此致
托马索
答案 0 :(得分:2)
如果您使用的是11.2,最简单的选择是使用内置的LISTAGG分析函数
SELECT listagg(name, ';') within group (order by code), type
FROM your_table
GROUP BY type
如果您使用的是早期版本,我的偏好是使用自定义聚合函数(Tim的string_agg)。