PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Премахване/замяна на специални знаци в стойностите на колоните?

Можете да използвате regexp_replace функция за оставяне само на цифрите и буквите, като тази:

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

Което означава, че всичко, което не е цифра, буква или подчертаване, няма да бъде заменено с нищо (което включва -, space, dot, comma и т.н.).

Ако искате също да включите _ да бъдат заменени (\w ще го напусне) можете да промените регулярния израз на [^\w]+|_ .

Или ако искате да сте стриктни със знаците, които трябва да бъдат премахнати, използвайте:[- ]+ в този случай тук тире и интервал.

Също както е предложено от Luiz Signorelly можете да използвате, за да замените всички срещания:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо моите задачи на Airflow са на опашка, но не се изпълняват?

  2. Как да итерирате стойностите на масива PostgreSQL jsonb за целите на съпоставяне в рамките на заявка

  3. ГРЕШКА в PostgreSQL:функция to_tsvector(променлив знак, неизвестен) не съществува

  4. postgresql 9.1 - достъп до таблици чрез функции

  5. Инсталирайте Postgres.app на Mac