sql >> Base de Datos >  >> RDS >> Oracle

REGEXP_REPLACE:elimine las comas de la cadena SOLO si están encerradas entre ()

Esto funcionará para una longitud constante de argumentos entre paréntesis.

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

actualización inspirada en el comentario de @Kobi:
esta expresión regular elimina el 1er, el 2do opcional y el 3er opcional , entre ()
se puede ampliar hasta 9 (tengo un libro indicando \1 ... \500 debería ser posible pero solo \1 ... \9 funcionó)

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