2014-02-20 2 views
2

Я пытаюсь выяснить, если это возможно, чтобы сцепить результаты запроса SQL, если выход имеет более чем одно значениерезультатов Соединить запрос SQL

Например: Если ниже запрос возвращает более одного результат

select * from employee 

Выход:

emp1 
emp2 
emp3 

Я хочу, чтобы результаты, чтобы показать, как

emp1, етр2, emp3

+0

Это зависит от того, если он хочет тех, кто в трех отдельных областях, или если он хочет одно поле с указанием «emp1, етр2, emp3», в этом случае было бы пользовательский агрегат. Он должен быть немного более явным в своем вопросе. – eidylon

+0

@ user3324344..Используйте PIVOT, а затем вы можете конкатенировать, используя между –

+0

Извините, eidylon, чтобы не быть более явным, мне нужны были результаты, как вы упомянули «emp1, emp2, emp3», – user3324344

ответ

2

Вы можете использовать "listagg"

Пример:

SELECT LISTAGG(columnname, ',') WITHIN GROUP (ORDER BY columname) 

Надеется, что это решит проблему!

0
SELECT LISTAGG(empname,',') WITHIN GROUP(ORDER BY empname) FROM emp; 
0

Вы можете использовать функцию listagg

select listagg(first_name,',') within group(order by employee_id) from employees; 

Я использую сотрудников из таблицы HR-схемы, представленной в версии Oracle 11g 2.

0

Вы можете использовать функцию XMLElement.

SELECT 
    RTRIM (XMLAGG (XMLELEMENT (E, EMPLOYEENAME|| ', ')).EXTRACT ('//text()'), ',') ENAMES 
FROM 
    EMPLOYEE; 
Смежные вопросы