Autor Beitrag
Maliko
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mi 11.03.20 15:37 
Moin,

ich hab grad ein kleines Probelem mit einem Oracle-Query. Und zwar mache ich einen Listagg auf eine Tabellenspalte. Dadurch bekomme ich die einträge leider doppelt und dreifach. Da DISTINCT bei unserer Version in Listagg nicht funktioniert habe ich es mit Regex versucht. Das was ich im Internet gefunden habe funktioniert auch wunderbar. Allerdings nur solange ich kein Leerzeichen hinter dem Seperator habe. Folgende Version funktioniert:

ausblenden SQL-Anweisung
1:
RTRIM ( REGEXP_REPLACE ((listagg (korrekturrechnung, ',') WITHIN GROUP(ORDER BY korrekturrechnung)), '([^,]+)(,\1)*(,|$)''\1\3'), ','as korrekturrechnung,					


Wenn ich jetzt aber den folgenden Teil nehme, dann bekomme ich trotzdem den ersten Eintrag doppelt:

ausblenden SQL-Anweisung
1:
RTRIM ( REGEXP_REPLACE ((listagg (korrekturrechnung, ', ') WITHIN GROUP(ORDER BY korrekturrechnung)), '([^,]+)(,\1)*(,|$)''\1\3'), ', 'as korrekturrechnung,					


Leider ist mein Regex absolut grauenhaft und daher hoffe ich das mir irgendjemand sagen kann, wie ich den Regex anpassen kann, dass er auch mit dem Leerzeichen hinter dem Komma klar kommt.

Danke schon einmal im Voraus.

Viele Grüße
Maliko