oracle中wm_concat函数将同一列的多行字段值拼接成一行

1.wm_concat函数:wm_concat(字段名)
在查询语句中,将指定字段名的返回结果的所有列的值都用‘,’连接起来拼接成一列。

用下图数据作为基础数据。在这些数据基础上运用wm_concat函数。



一般情况下,wm_concat函数配合group by 子句使用。
以下图为基础数据,应用wm_concat配合group by 子句使用。


再以下图 为基础数据使用group by 子句查询数据。

此时返回结果中,按照klg_id分组,每组klg_id返回一条数据,而每组item_id返回多条数据,
oracle处理这种查询的方式是抛出异常:ORA-00979:not a GROUP BY expression,不让你这么查。
所以这时候wm_concat就派上用场了。将item_id的多条数据用wm_concat拼成一条数据。



还有要注意当表中数据量很大时,不要直接用wm_concat,拼接某字段的所有值。这样若该字段值拼接起来数据量很大,会因为超长而报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值