Я пытаюсь преобразовать подзапрос с одной колонкой в список значений, разделенных командами VARCHAR
.
Это идентично этому вопросу, но для Oracle, а не для SQL Server или MySQL.
Я пытаюсь преобразовать подзапрос с одной колонкой в список значений, разделенных командами 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 представил LISTAGG, который в отличие от WM_CONCAT задокументирован. У нас еще нет версии 11.2, поэтому мы используем настраиваемую агрегатную функцию.
Вот блог, в котором показано, что запрос Oracle работает как MySQL GROUP_CONCAT()
:
http://halisway.blogspot.com/2006/08/oracle-groupconcat-updated-again.html
ВЫБЕРИТЕ deptno, wm_concat (ename) КАК сотрудники ИЗ emp GROUP BY deptno;
Ссылка: http://forums.oracle.com/forums/thread.jspa?messageID=1186901