2013-08-02 41 views
0

我有EMP表,在关系型数据库Oracle 10g中,我想获得如下输出在Oracle 10g中将多行中的单列连接成由','分隔的单列?

EMPNO ENAME  Concat_column 

7369 SMITH  SMITH,ALLEN,WARD,JONES,MARTIN,BLAKE,CLARK,SCOTT,KING,TURNER,ADAMS,JAMES,FORD,MILLER 
7499 ALLEN 
7521 WARD 
7566 JONES 
7654 MARTIN 
7698 BLAKE 
7782 CLARK 
7788 SCOTT 
7839 KING 
7844 TURNER 
7876 ADAMS 
7900 JAMES 
7902 FORD 
7934 MILLER 

请帮助我。

预先感谢您,对不起我的英文和输入错误。

回答

0

蒂姆霍尔有一个页面,列出了各种string aggregation techniques

我个人更喜欢用户定义的聚合函数,但也有一些其他技术也适用。

1

尝试用此查询,也许将是有益的:

SELECT rtrim (xmlagg (xmlelement (e, y.NAME || ',')).extract ('//text()'), ',') Concat_column 
FROM EMP y 

你可以试试这个位置(SQL Fiddle)。

第二个版本,也许这正是你想要的

SELECT a.EMPNO, a.NAME, b.Concat_column 
FROM EMP a 
LEFT JOIN (
    SELECT 
    7369 AS EMPNO, 
    'SMITH' AS NAME, 
    rtrim (xmlagg (xmlelement (e, y.NAME || ',')).extract ('//text()'), ',') AS Concat_column 
    FROM EMP y 
) b ON a.EMPNO = b.EMPNO 

链接SQL Fiddle

相关问题