Oracle
 sql >> Datenbank >  >> RDS >> Oracle

REGEXP_REPLACE - entfernt Kommas NUR aus der Zeichenfolge, wenn sie in () eingeschlossen sind

Dies funktioniert für eine konstante Länge von Argumenten mit in den Klammern.

REGEXP_REPLACE(t.col1, '(\(.*?),(.*?),(.*?\))', '\1\2\3') new_col

Update inspiriert von @Kobis Kommentar:
dieser reguläre Ausdruck entfernt den 1., optionalen 2. und optionalen 3. , zwischen ()
Es kann bis zu 9 erweitert werden (ich habe ein Buch ). Angabe von \1 ... \500 sollte möglich sein, aber nur \1 ... \9 funktionierte)

REGEXP_REPLACE(t.col1, '\(([^,]*),([^,]*),?([^,]*),?([^,]*)\)', '(\1\2\3\4)') new_col