如有表table:
L1      L2      L3
--------------------------
'a'      1     '行1'
'a'      2     '行2'
'b'      3     '行3'select L1,sum(L2)
from table
group by L1
可得出:
L1     sum(L2)
-----------------
'a'      3
'b'      3
请问有没一个函数象sum那样,但是是用于连接字符串的?
L1     sum(L3)
-----------------
'a'    '行1 行2'
'b'    '行3'

解决方案 »

  1.   

    10g,wm_concat()
    9i,sys_connect_by_path
      

  2.   


    select L1,wm_concat(L3)
    from table
    group by L1
      

  3.   

    select L1,wm_concat(L2)
    from table
    group by L1
      

  4.   

    --9i
    SELECT a.L1, ltrim(MAX(sys_connect_by_path(L3, ',')), ',') L3
      FROM (SELECT row_number() over(PARTITION BY t.L1 ORDER BY L1) rn, t.* FROM TABLE t) a
     START WITH rn = 1
    CONNECT BY PRIOR rn = rn - 1 AND
               a.L1 = PRIOR a.L1
     GROUP BY L1;
      

  5.   

    select L1,replace(wm_concat(L3),',','')
    from table
    group by L1