日期:2014-05-16  浏览次数:20428 次

ORACLE一列的多行数据拼成字符

?


例:?? 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