Sql 如何从Oracle中获取以逗号分隔的行
这就是我得到的Sql 如何从Oracle中获取以逗号分隔的行,sql,oracle,Sql,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
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提前。您没有说明您的版本,因此我假设当前版本(11.2):
您没有说明您的版本,因此我假设当前版本(11.2):
您可以使用
listag
函数执行以下相同操作-
select MenuId,
MenuName,
Name,
listagg(menu2,',') within group (order by 1) Privilege
from table_name
group by MenuId,MenuName,Name
您可以使用
listag
功能进行以下相同操作-
select MenuId,
MenuName,
Name,
listagg(menu2,',') within group (order by 1) Privilege
from table_name
group by MenuId,MenuName,Name
如果您没有使用oracle 11gR2,那么还有其他方法-阅读 以及XMLAGG方式:
select menuid, menuname, name, trim(xmlagg(xmlelement(e, privilege || ','))
.extract('//text()')) Privilege
from table_name
group by MenuId,MenuName,Name
如果您没有使用oracle 11gR2,那么还有其他方法-阅读 以及XMLAGG方式:
select menuid, menuname, name, trim(xmlagg(xmlelement(e, privilege || ','))
.extract('//text()')) Privilege
from table_name
group by MenuId,MenuName,Name