Oracle 将子查询内容拼接为字符串

方法一 :缺点字符串太长会报错

SQL:


             select LINEID, AREAID, LINENAME, CARCODE, CARSIM, LINENOTES, LINESORTINDEX, AREANAME, AREASORTINDEX,  '[' || MAPPOINTS || ']' as MAPPOINTS from(  
          select   LINEID, LINE.AREAID, LINENAME, CARCODE, CARSIM, LINENOTES, LINESORTINDEX, areaname, areasortindex, ( 
              select   wm_concat('{ \"LPOINTSORTINDEX\":' || LPOINTSORTINDEX || ' ,\"lpointid\": ' || lpointid || ',\"lng\":' || lng || ',\"Lat\":' || Lat || '}')   mapPoint 

              from zhdb_ods.ODS_HJZL_KM_CARLINEPOINT points  

                    where points.LINEID = LINE.LINEID 
                   and Lng is not null and Lat is not null 
                   group by  lineID 

               ) mapPoints 
               from zhdb_ods.ODS_HJZL_KM_CARLINE line 
          left join  zhdb_ods.ODS_HJZL_KM_CARAREA area  on line.AreaID = area.AREAID  ) orig 

效果:

 

 

 

方法二

SQL:

select LINEID, AREAID, LINENAME, CARCODE, CARSIM, LINENOTES, LINESORTINDEX, AREANAME, AREASORTINDEX,  '[' || MAPPOINTS || ']' as MAPPOINTS from(  
          select   LINEID, LINE.AREAID, LINENAME, CARCODE, CARSIM, LINENOTES, LINESORTINDEX, areaname, areasortindex, ( 
          select XMLAGG(XMLELEMENT(E, '{ \"LPOINTSORTINDEX\":' || LPOINTSORTINDEX || '  ,\"LPOINTNAMES\": ' || to_char(LPOINTNAMES) || ',\"lpointid\": ' || lpointid || ',\"lng\":' || lng || ',\"Lat\":' || Lat || '}')).EXTRACT('//text()').getclobval() codes from zhdb_ods.ODS_HJZL_KM_CARLINEPOINT points  


                    where points.LINEID = LINE.LINEID 
                   and Lng is not null and Lat is not null 
                   group by  lineID 

               ) mapPoints 
               from zhdb_ods.ODS_HJZL_KM_CARLINE line 
          left join  zhdb_ods.ODS_HJZL_KM_CARAREA area  on line.AreaID = area.AREAID  ) orig 

效果:

点开一个 CLOB 的效果 :

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值