Oracle
 sql >> Database >  >> RDS >> Oracle

REGEXP_REPLACE - rimuove le virgole dalla stringa SOLO se racchiuse tra ()'s

Questo funzionerà per una lunghezza costante di argomenti tra parentesi.

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

aggiornamento ispirato al commento di @Kobi:
questa espressione regolare rimuove il 1°, il 2° facoltativo e il 3° facoltativo , tra ()
può essere esteso fino a 9 (ho un prenota affermando \1 ... \500 dovrebbe essere possibile ma solo \1 ... \9 ha funzionato)

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