2013-08-02 2 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.

Смежные вопросы