2016-03-15 9 views
0

Мне нужно сделать запрос, чтобы получить результат и поместить в одну строку, разделенную запятой.Строки запросов группы приводят к одному результату

К примеру, у меня есть этот запрос:

SELECT 
    SIGLA 
FROM 
LANGUAGES 

Этот запрос возвращает результат, ниже:

SIGLA

ESP 
EN 
BRA 

Мне нужно, чтобы получить этот результат в одной строке таким образом:

Сигла

ESP,EN,BRA 

Может кто-нибудь мне помочь?

Спасибо!

+1

Какую версию Oracle вы используете? –

ответ

1

попробовать

SELECT LISTAGG(SIGLA, ',') within group (order by SIGLA) as NewSigla FROM LANGUAGES 
+3

Вы не использовали полный синтаксис LISTAGG? ВЫБРАТЬ LISTAGG (Сиг, '') внутри группы (ORDER BY SIGLA) "Как "s_list" ИЗ ЯЗЫКОВ –

+0

' ORA-02000:. Отсутствует ТЕЧЕНИЕ keyword' – MT0

+0

скорректированных пожалуйста, попробуйте –

2
SELECT LISTAGG(SIGLA, ', ') WITHIN GROUP (ORDER BY SIGLA) " As "S_List" FROM LANGUAGES 

Должно быть последовательность listagg вы нуждаясь

1

Если вы хотите получить значения группируются в том порядке, в Oracle производит строки, то:

SELECT LISTAGG(SIGLA, ',') WITHIN GROUP (ORDER BY ROWNUM) AS SIGLA 
FROM LANGUAGES; 

Если вы хотите в алфавитном порядке, то замените ORDER BY ROWNUM на ORDER BY SIGLA (или, curiously, ORDER BY NULL).

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