您当前的位置: 首页 >  oracle

qq_34412985

暂无认证

  • 2浏览

    0关注

    1061博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Oracle字符串拼接函数(wm_concat、listagg、xmlagg)踩过的坑

qq_34412985 发布时间:2020-07-07 23:56:32 ,浏览量:2

标题中的三个函数均为oracle数据库中的字符串拼接函数,作用是将查询的某个字段所有的值以指定符号拼接起来。有一张表如下: id     Value 1     $1600 2     $12 3     $1 4     $1 1、wm_concat

使用方法:

wm_concat(id);

达到的效果:1,2,3,4 弊端:有长度限制或者版本不支持。此函数慎用,在Oracle12G中不支持此函数,如果遇到项目的数据库版本升级,会报出标识符无效的错。 2、listagg

istagg是Oracle 11.2中新增的函数

使用方法:

listagg(id, ',')within group(order by id) as id;

达到的效果:1,2,3,4 弊端:有长度限制,拼接的字符串超过4000时会报错。 3、xmlagg

使用方法:

xmlagg(xmlparse(content id||',' wellformed) order by id).getclobval() as roleId;

达到的效果:1,2,3,4, 弊端:末尾会多处一个“,”。 所以,可以结合rtrim函数一起使用,去掉末尾多余的“,”,修改后如下:

rtrim(xmlagg(xmlparse(content id||',' wellformed) order by id).getclobval(), ',') as id

关注
打赏
1653291990
查看更多评论
立即登录/注册

微信扫码登录

0.0383s