行列转换_wmsys.wm_concat

需求描述

loc_sys_busi_strategy是纵表,需转换成横表方便Redis QUEUE处理。 
源数据格式 

行列转换_wmsys.wm_concat


需求格式 

行列转换_wmsys.wm_concat

 
注意其中speed,area成需求格式里的标题heading。

格式转换

select busirule_id,element_key,element_val  from loc_sys_busi_strategy;

行列转换_wmsys.wm_concat

title heading 转换

select busirule_id, 'speed' speed, 'area' area  from loc_sys_busi_strategy where 1 = 2
          union
select busirule_id,
       decode(element_key, upper('speed'), element_val),
       decode(element_key, upper('area'), element_val)  from loc_sys_busi_strategy;

行列转换_wmsys.wm_concat

合并

select busirule_id,
       to_char(wmsys.wm_concat(speed)) speed,
       to_char(wmsys.wm_concat(area)) area  from (select busirule_id, 'speed' speed, 'area' area  from loc_sys_busi_strategy where 1 = 2
  union
select busirule_id,
               decode(element_key, upper('speed'), element_val),
               decode(element_key, upper('area'), element_val) from loc_sys_busi_strategy) group by busirule_id;

行列转换_wmsys.wm_concat