Oracle: выбрать элементы в формате CSV? - PullRequest
3 голосов
/ 10 января 2012

Предположим, у меня был запрос

select name from tbl where dept = 123

, который возвращает такой набор данных

bob
carol
steve

Есть ли способ естественного выражения (в sql или, возможно, в процедуре?)запрос, который вернет данные в виде списка CSV или разделенного пробелами?

bob,carol,steve

1 Ответ

7 голосов
/ 10 января 2012

Какая версия Oracle?

У Тима Холла есть страница, описывающая различные методы агрегирования строк в Oracle .Если вы используете Oracle 11.2, самый простой вариант -

SELECT listagg(name, ',') within group( order by name)
  FROM table_name
 WHERE dept = 123

. Если вы используете более ранние версии Oracle, существует много других подходов с различными преимуществами и недостатками.Тим сравнивает различные подходы довольно полно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...