Oracle: mehrere Ergebnisse in einer Unterabfrage in einem einzigen komma-separierte Kombinieren [Duplicate]
-
20-08-2019 - |
Frage
Diese Frage bereits eine Antwort hier:
Ich versuche, eine Single-columned Unterabfrage in eine Befehl getrennt VARCHAR
typisierte Liste von Werten zu konvertieren.
Dies ist identisch href="https://stackoverflow.com/questions/111341/combine-multiple-results-in-a-subquery-into-a-single-comma-separated-value"> dies , aber für Oracle statt SQL Server oder MySQL.
Lösung
Es gibt eine ausgezeichnete Zusammenfassung der verfügbar String Aggregationstechniken auf Tim Hall Website.
Andere Tipps
Das fand ich die zu funktionieren scheint. Gedanken?
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 eingeführt LISTAGG , die im Gegensatz zu WM_CONCAT dokumentiert. Wir sind nicht auf 11.2 noch, also verwenden wir eine benutzerdefinierte Aggregatfunktion.
Hier ist ein Blog, das eine Oracle-Abfrage zeigt, wie MySQL GROUP_CONCAT()
arbeiten:
http://halisway.blogspot.com/2006 /08/oracle-groupconcat-updated-again.html
SELECT deptno, wm_concat (ename) AS Mitarbeiter FROM emp GROUP BY deptno;
Referenz: http://forums.oracle.com/forums /thread.jspa?messageID=1186901