orig_system
hat DNB
als Wert, und sie haben viel owner_table_id
zu DNB
zugeordnet. Ich versuche, alle IDs aus mehreren Zeilen in eine Zeile zu bringen.Wie simuliere ich 'LISTAGG' Funktionalität in Oracle 10g?
Aber Oracle 10g unterstützt nicht listagg
. Gibt es eine andere Möglichkeit, alle OWNER_TABLE_ID
in einer einzigen Zeile für DNB zu verketten.
Unten finden Sie die Abfrage verwendet:
SELECT OWNER_TABLE_ID,LISTAGG (ORIG_SYSTEM,',') WITHIN GROUP (ORDER BY ORIG_SYSTEM)
from APPS.HZ_ORIG_SYS_REFERENCES
WHERE ROWNUM < 100 GROUP BY OWNER_TABLE_ID
Im Folgenden finden Sie die Beispieldaten:
OWNER_TABLE_ID, ORIG_SYSTEM
182403 DNB
16604 DNB
84818 DNB
172891 DNB
16605 DNB
84819 DNB
205544 DNB
16606 DNB
84820 DNB
Erwartetes Ergebnis:
ORIG_SYSTEM OWNER_TABLE_ID,
DNB 182403,16604,84818,72891,16605,84819,205544,16606,84820"
Möglicherweise müssen Sie 'GROUP BY' etwas anderes als' OWNER_TABLE_ID'? – mustaccio
Eine ganze Sammlung von Ansätzen: http://stackoverflow.com/questions/14243131/concatenate-results-from-a-sql-query-in-oracle – Codo
Siehe [** Oracle String Aggregation Techniques **] (https://lalitkumarb.wordpress.com/category/oracle-string-aggregation/) –