日期:2014-05-16 浏览次数:20428 次
?
例:?? id? name
?????? 1?? aa
?????? 2?? bb
?????? 3?? cc
? 要的结果是"aa,bb,cc"
以前有过这种需求,我用存储过程拼接,或者在程序中取出数据拼接,就这样暂时解决了。
可是事后一直在想是不是可以直接查出来,这样就简单多了,oracle中应该有这样的方法的,可是一直没找到,呵呵,今天终于解决了。
select WMSYS.WM_CONCAT(a.name) from user a
这样的话,查询出的结果:"aa.bb.cc"
解决是解决了,不过用中间用点间隔不太好,希望用逗分号
改进一下:
select replace(WMSYS.WM_CONCAT(a.name),',',';') from user a
结果:"aa;bb;cc"
?
原文摘自: http://www.iteye.com/topic/683105