Oracle wm"/>
Oracle wm
今天在项目中修改了一个sql
select t.dmid bmid,wm_concat(m.xm) fgld from gg_user m,gg_dmnr_qx t where m.id = t.czyid group by dmid
这个函数也够把符合条件的几条数据的某一列 合并成一条数据中的某一列
比如上面这个sql
就是把gg_dmnr_qx 表里的数据根据dmid 分组 把对应的user表里的xm 拼接成一行
我所做的修改是要把xm 按照顺序排列再拼接
改造后的sql为
select t.dmid bmid,wm_concat(m.xm) over (partition by dmid order by m.sxh) fgld from gg_user m,gg_dmnr_qx t where m.id = t.czyid
改造之后的数据过多 并没有分组
在外层套一个max(fgld)即可
最终sql
select bmid,max(fgld)from(select t.dmid bmid,wm_concat(m.xm) over (partition by dmid order by m.sxh) fgld from gg_user m,gg_dmnr_qx t where m.id = t.czyid )
注意:wm_concat ()函数无法在Oracle12中使用
转自:Oracle wm_concat()函数 及排序
更多推荐
Oracle wm
发布评论