sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Eliminar/reemplazar caracteres especiales en valores de columna?

Puede usar regexp_replace función para dejar solo los dígitos y las letras, así:

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

Lo que significa que todo lo que no sea un dígito, una letra o un subrayado será reemplazado por nada (eso incluye -, space, dot, comma , etc.).

Si desea incluir también el _ para ser reemplazado (\w lo dejará) puede cambiar la expresión regular a [^\w]+|_ .

O si quieres ser estricto con los caracteres que se deben quitar usa:[- ]+ en este caso aquí un guión y un espacio.

También como lo sugiere Luiz Signorelly puede usar para reemplazar todas las apariciones:

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