0

これは私が得ているものです

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。

4

3 に答える 3

1

あなたはあなたのバージョンを述べていなかったので、私は現在のバージョン(11.2)を仮定します:

select menuid, menuname, name, listagg(privilege, ',')
from menu
group by menuid, menuname, name
于 2012-07-16T07:21:54.647 に答える
1

Oracle 11gR2 を使用していない場合は、他の方法があります - こちらをお読みください

XMLAGG の方法:

select menuid, menuname, name, trim(xmlagg(xmlelement(e, privilege || ','))
              .extract('//text()')) Privilege
from table_name
group by MenuId,MenuName,Name
于 2012-07-16T12:38:03.477 に答える
1

次のような同じ機能を使用できますlistagg-

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

参考のため

于 2012-07-16T07:24:08.280 に答える