这就是我得到的
parent MenuName Name menu2 type menuId menu2Id
--------------------------------------------------------------
26 General Currency Add 3 27 29
26 General Currency Delete 3 27 31
26 General Currency Update 3 27 30
26 General Currency View 3 27 28
26 General Country Add 3 32 34
26 General Country Delete 3 32 36
26 General Country Update 3 32 35
我希望得到这样的
MenuId MenuName Name Privilege
------------------------------------------------
27 General Currency Add,Delete,Update,View
32 General Country Add,Delete,Update
请帮助解决此问题
提前谢谢。答案 0 :(得分:1)
您没有说明您的版本,因此我假设当前版本(11.2):
select menuid, menuname, name, listagg(privilege, ',')
from menu
group by menuid, menuname, name
答案 1 :(得分:1)
您可以使用listagg
功能,例如关注 -
select MenuId,
MenuName,
Name,
listagg(menu2,',') within group (order by 1) Privilege
from table_name
group by MenuId,MenuName,Name
答案 2 :(得分:1)
如果您没有使用oracle 11gR2,那么还有其他方法 - 阅读here
和XMLAGG方式:
select menuid, menuname, name, trim(xmlagg(xmlelement(e, privilege || ','))
.extract('//text()')) Privilege
from table_name
group by MenuId,MenuName,Name