PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Rimuovere/sostituire i caratteri speciali nei valori delle colonne?

Puoi usare regexp_replace funzione per lasciare solo le cifre e le lettere, in questo modo:

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

Ciò significa che tutto ciò che non è una cifra, una lettera o una sottolineatura non verrà sostituito da nulla (che include -, space, dot, comma , ecc).

Se vuoi includere anche il _ da sostituire (\w lo lascerà) puoi cambiare la regex in [^\w]+|_ .

Oppure se vuoi essere severo con i caratteri che devono essere rimossi usa:[- ]+ in questo caso qui un trattino e uno spazio.

Anche come suggerito da Luiz Signorelly puoi usare per sostituire tutte le occorrenze:

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