Oracle中带有group by的Concat值
我的桌子学生像Oracle中带有group by的Concat值,oracle,plsql,oracle10g,Oracle,Plsql,Oracle10g,我的桌子学生像 Id Name Dept --------------- 2 Ball A 3 Cat B 1 Dog C 2 Egg C 3 Fox D 4 Gun A 1 Hen B 1 Apple A 现在我想得到结果 Dept Names ------------------- A Apple,Ball,Gun B Hen,Cat C Dog,Egg D
Id Name Dept
---------------
2 Ball A
3 Cat B
1 Dog C
2 Egg C
3 Fox D
4 Gun A
1 Hen B
1 Apple A
现在我想得到结果
Dept Names
-------------------
A Apple,Ball,Gun
B Hen,Cat
C Dog,Egg
D Fox
这里应该根据Id列的升序进行连接。
我尝试过使用wm_concat()、xmlagg(xmlement())函数,但连接不遵循列Id顺序
我的数据库版本是Oracle 10.2.0.5.0
谢谢尝试使用WM_CONCAT功能
SELECT dept, WM_CONCAT(name) names
FROM(
SELECT dept, name
FROM students
order by name
)
GROUP BY dept
ORDER BY dept;
尝试先对子查询中的值进行排序,然后再使用
wm_concat
。我已经在我的工作站上测试过了,效果很好。无法创建SQLFIDLE,因为它不允许我使用wm_concat
函数
select dept, wm_concat(name) from
(
select id, name, dept
from test
order by dept, id, name
) group by dept
看一看,可能会有所帮助。