PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Sonderzeichen in Spaltenwerten entfernen/ersetzen?

Sie können den regexp_replace verwenden Funktion, um nur die Ziffern und Buchstaben zu hinterlassen, etwa so:

update mytable
   set myfield = regexp_replace(myfield, '[^\w]+','');

Das bedeutet, dass alles, was keine Ziffer oder ein Buchstabe oder ein Unterstrich ist, durch nichts ersetzt wird (einschließlich -, space, dot, comma). usw.).

Wenn Sie auch den _ einschließen möchten zu ersetzen (\w wird es verlassen) können Sie die Regex zu [^\w]+|_ ändern .

Oder wenn Sie mit den zu entfernenden Zeichen streng sein wollen, verwenden Sie:[- ]+ in diesem Fall hier ein Bindestrich und ein Leerzeichen.

Auch wie von Luiz Signorelly vorgeschlagen Sie können verwenden, um alle Vorkommen zu ersetzen:

    update mytable
       set myfield = regexp_replace(myfield, '[^\w]+','','g');