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://toprogrammer.iteye.com/blog/683105

上一篇:QTP不能打开或者新建FunctionLibrary的解决方法


下一篇:hdu(预处理+线段树)