2012-07-16 65 views
0

分離這就是我得到如何採取從Oracle行用逗號

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 

請與本

提前THX幫助。

回答

1

你沒有說明你的版本,所以我認爲目前的版本(11.2):

select menuid, menuname, name, listagg(privilege, ',') 
from menu 
group by menuid, menuname, name 
1

您可以使用listagg功能同樣喜歡後續 -

select MenuId, 
     MenuName, 
     Name, 
     listagg(menu2,',') within group (order by 1) Privilege 
from table_name 
group by MenuId,MenuName,Name 

for reference

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