大家好,想請問
我用以下查詢語句
SELECT cod_a, cod_b
FROM codd
order by cod_a
得到
cod_a  cod_b
A  sd412
A  g10012
B  cd5254
B  sd412
B  cf3932
B  qw6886
B  68842
C  g10012
C  r668
C  as8888想請問有什麼方式可得到以下結果
A  sd412  q10012
B  cd5254  sd412  cf3932  qw6886  68842
C  q10012  r668  as8888

解决方案 »

  1.   


    没ORACLE环境,只能帮你顶一下。
      

  2.   

    sql是(structured query language)结构化查询语言。
    你这个结果数量不定,没有结构化,应该不能直接通过Sql查询得到。
      

  3.   

    10g以上版本select cod_a,wmsys.wm_concat(cod_b) from codd group by cod_a;
      

  4.   

    是查询出来 是2个字段么 是的话wm_concat()可以完成 不是的话 那必须用动态sql了
      

  5.   

    感謝各位的回覆,令我受益良多 thanks.
      

  6.   

    大家好,剛剛又找到了新的方法,供大家參考SELECT cod_a, SUBSTR (MAX (SYS_CONNECT_BY_PATH (cod_b, ';')), 2) NAME
        FROM (SELECT cod_a, cod_b, rn, LEAD (rn) OVER (PARTITION BY cod_a ORDER BY rn) rn1
                FROM (SELECT cod_a, cod_b, ROW_NUMBER () OVER (ORDER BY cod_b) rn
                        FROM codd))
    START WITH rn1 IS NULL
    CONNECT BY rn1 = PRIOR rn
    GROUP BY cod_a;