id   key        value
1    a1           a
1    b1           b
1    c1           c
select id,wmsys.wm concat(key),wmsys.wm concat(value) from table group by id怎么保证2个wmsys.wm concat中的key的位置与value的位置一一对应
如:1  a1,b1,c1    a,b,c而不能是 1    a1,b1,c1      b,c,a

解决方案 »

  1.   

    with test as(
    select 1 id, 'a1' key, 'a' value from dual
    union all
    select 1 ,'b1', 'b' from dual
    union all
    select 1 ,'c1', 'c' from dual
    )
    select id,key,value from (
    select 
    id,
     WMSYS.WM_CONCAT(key)
             OVER(PARTITION BY  id   ORDER BY   key) key, 
      WMSYS.WM_CONCAT(value)
             OVER(PARTITION BY  id   ORDER BY   key) value, 
         row_number()  over(PARTITION BY  id   ORDER BY   key desc) rs 
     from test ) where rs=1