Oracle:Объединить несколько результатов в подзапросе в одно значение, разделенное запятыми [дублировать]

StackOverflow https://stackoverflow.com/questions/492563

Вопрос

Я пытаюсь преобразовать подзапрос с одним столбцом в разделенный командами VARCHAR-введенный список значений.

Это идентично этот вопрос, но для Oracle, а не для SQL Server или MySQL.

Это было полезно?

Решение

Существует отличное краткое изложение доступные методы агрегирования строк на сайте Тима Холла.

Другие советы

Я нашел это, которое, кажется, работает.Мысли?

SELECT SUBSTR (c, 2) concatenated
  FROM (SELECT     SYS_CONNECT_BY_PATH ( myfield, ',') c, r
              FROM (SELECT   ROWNUM ID, myfield,
                             RANK () OVER (ORDER BY ROWID DESC) r
                        FROM mytable
                    ORDER BY myfield)
        START WITH ID = 1
        CONNECT BY PRIOR ID = ID - 1)
 WHERE r = 1;

11.2 введенный ЛИСТАГГ, который, в отличие от WM_CONCAT, документирован.Мы еще не перешли на 11.2, поэтому используем пользовательскую агрегатную функцию.

Вот блог, в котором показан запрос Oracle, работающий подобно MySQL GROUP_CONCAT():

http://halisway.blogspot.com/2006/08/oracle-groupconcat-updated-again.html

ВЫБЕРИТЕ deptno, wm_concat (имя пользователя) В КАЧЕСТВЕ сотрудников ИЗ emp ГРУППИРУЙТЕ По deptno;

Ссылка: http://forums.oracle.com/forums/thread.jspa?messageID=1186901�

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top