sql >> Database >  >> RDS >> PostgreSQL

Speciale tekens in kolomwaarden verwijderen/vervangen?

U kunt de regexp_replace . gebruiken functie om alleen de cijfers en letters over te laten, zoals dit:

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

Dat betekent dat alles wat geen cijfer of letter of onderstreping is, door niets wordt vervangen (inclusief -, space, dot, comma , enz.).

Als u ook de _ . wilt opnemen te vervangen (\w zal het verlaten) kunt u de regex wijzigen in [^\w]+|_ .

Of als je strikt wilt zijn met de tekens die moeten worden verwijderd, gebruik je:[- ]+ in dit geval hier een streepje en een spatie.

Ook zoals gesuggereerd door Luiz Signorelly u kunt gebruiken om alle instanties te vervangen:

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


  1. Wat is DATALENGTH() in SQL Server?

  2. MYSQL sum() voor verschillende rijen

  3. kan mysql db-tabel niet toevoegen in vb-gegevensbron

  4. Hoofdlettergevoeligheid van Postgres