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

来源:互联网 发布:jdk 7u45 windows x32 编辑:程序博客网 时间:2024/06/04 19:00
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,拼接某字段的所有值。这样若该字段值拼接起来数据量很大,会因为超长而报错。

阅读全文
0 0
原创粉丝点击