求高手解决SQL查询问题
数据结构,
id varchar(50)
sname varchar(50)
sgroup varchar(50)
数据
id    sname    sgroup
0001  name1    group1
0002  name2    group1
0003  name3    group1
0004  name4    group1
0005  name5    group2
0006  name6    group2
0007  name7    group3
0008  name8    group4
-----------------------------
要求查询结果
id  sname sgroup
同组的,也就是sgroup相同的,sname的结果为所有sname的组合,比如:name1+‘|’+name2+‘|’+name3+‘|’+name4
结果显示:
id    sname                                                           sgroup
-----------------------------------------
0001  name1+‘|’+name2+‘|’+name3+‘|’+name4                       group1
0005  name5+'|'+name6                                                 group2
0007  name7                                                           group3
0008  name8                                                           group4
------------------------------------------
求高手给写sql语句,不要代码段
------解决方案-------------------- 
SQL code
select min(id) id,sgroup,
    stuff((select ','+sname from tb where sgroup=t.sgroup for xml path('')),1,1,'') sname
from tb t
group by sgroup
------解决方案--------------------  探讨  1楼的sqlserver通过了,能给个同时支持oracle的语句吗? 
------解决方案-------------------- 探讨  1楼的sqlserver通过了,能给个同时支持oracle的语句吗?