oracle 多行数据 转为 一行数据,用逗号分隔

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xinglei200909931/article/details/84693528

oracle 多行数据 转为 一行数据,用逗号分隔

有时候我们需要将多行数据转为一行,多个数值用逗号分隔,其实很简单,只需要一个oracle 提供的函数即可, wm_concat() 函数 即可实现该功能

 

普通查询代码如下:

select crm.d_ringname,czm.d_zonename,cc.d_circuitname 
from c_ringsdetailreference cr ,c_rins_manager crm ,c_circuit cc,c_zone_manage czm
 where crm.d_ringid=cr.d_ringid and cr.d_circuitid=cc.d_circuitid
 and czm.d_zoneid = crm.d_zoneid and czm.d_zoneid=195014

 效果如下:


 

要想达到一行,用逗号隔开的效果,需要用到 wm_concat() 函数,代码如下:

select  crm.d_ringname,czm.d_zonename as 所属单位,
count(cr.d_circuitid) as 馈线数量, wm_concat(cc.d_circuitname) as 馈线列表,
wm_concat(cc.d_circuitid) 馈线FID 
from c_rins_manager crm,c_ringsdetailreference cr ,c_circuit cc,c_zone_manage czm
where crm.d_ringid = cr.d_ringid and cr.d_circuitid = cc.d_circuitid
and czm.d_zoneid=crm.d_zoneid
--and crm.d_ringname = cr.d_ringname
and czm.d_zoneid=195014
group by (crm.d_ringname,czm.d_zonename);

 

效果如下:



 

 

 

展开阅读全文

没有更多推荐了,返回首页