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