यदि आप 11g पर हैं तो LISTAGG फ़ंक्शन का उपयोग करने पर विचार करें:
select grp, listagg(name,',') within group( order by name )
from name_table group by grp
sqlFiddle
अपडेट करें: यदि आप नहीं हैं, तो विश्लेषिकी का उपयोग करने पर विचार करें:
select grp,
ltrim(max(sys_connect_by_path
(name, ',' )), ',')
scbp
from (select name, grp,
row_number() over
(partition by grp
order by name) rn
from tab
)
start with rn = 1
connect by prior rn = rn-1
and prior grp = grp
group by grp
order by grp
sqlFiddle