`
toprogrammer
  • 浏览: 64500 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多
上篇文章写的是在ibatis中,需要返回一个字符串,却返回了多行数据,结果出现了错误。

其实,我想做的是:

  查询表中的一个字段,返回了多行,就把这么多行的数据都拼成一个字符串。

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

终于,完美解决了一直困扰我的问题。。。挺简单的一个方法
分享到:
评论
3 楼 NF160 2014-08-22  
我表示11g出来不用replace就直接是 逗号分隔啊
2 楼 laoqian9527 2013-12-11  
ease204304 写道
补充下
9i的用不了
11g的可以使用

9i确实使用不了。请问在9i该如何自定义这样的函数呢
1 楼 ease204304 2011-12-13  
补充下
9i的用不了
11g的可以使用

相关推荐

Global site tag (gtag.js) - Google Analytics