表A  如下所示:id    name
1     zhang
2     wang
3     zhao
4     sun我想合并为一行,如下所示:1,2,3,4    zhang, wang,zhao,sun怎么写这个语句? 请大家赐教!谢谢!

解决方案 »

  1.   

    来自:oracledbalgtu
    给你个参考方法:
    SELECT DEPTNO, MAX(ONCATENATED)
      FROM (SELECT DEPTNO,
                   LTRIM(SYS_CONNECT_BY_PATH(ENAME, ','), ',') ONCATENATED
              FROM (SELECT DEPTNO,
                           ENAME,
                           ROW_NUMBER() OVER(PARTITION BY DEPTNO ORDER BY ENAME) AS CURR,
                           ROW_NUMBER() OVER(PARTITION BY DEPTNO ORDER BY ENAME) - 1 AS PREV
                      FROM SCOTT.EMP)
             START WITH CURR = 1
            CONNECT BY PREV = PRIOR CURR
                   AND DEPTNO = PRIOR DEPTNO)
     GROUP BY DEPTNO
     ORDER BY 1;
      

  2.   

    select wmsys.wm_concat(id),wmsys.wm_concat(name) from a
      

  3.   

    select wmsys.wm_concat(id)||' '||wmsys.wm_concat(name) from a
      

  4.   

    select wmsys.wm_concat(id),wmsys.wm_concat(name) from a
    在10G以上版本