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

regexp_replace Unicode i PostgreSQL

Brug digit til almindelige numre tegnklasse som [[:digit:]] eller stenografi \d :

SELECT regexp_replace('s4y8sds', $$\d+$$, '', 'g');

Resultat:

 regexp_replace
----------------
 sysds
(1 row)

For andre tal (for eksempel ¼) er ikke så enkelt, mere præcist som dokumentation siger, at det er ctype (locale) afhængigt:

Du kan dog bruge internt PL/Perl proceduresprog og skrive serversidefunktion med ønskede Unicode-tegnklasser \p{} :

CREATE OR REPLACE FUNCTION removeNumbersUnicode(text)
RETURNS text AS $$
    $s = $_[0];
    $s =~ s/\p{N}//g;
    return $s;
$$ LANGUAGE plperl;

Tjek kapitel 41 fra doc for mere info, hvordan man skriver sådanne funktioner.




  1. Hvad er den bedste måde at håndtere sql-forbindelse i http-server (Flask) uden ORM i Python?

  2. Sådan bestiller du efter dato i T-SQL

  3. Hvad er SQL Server Management Studio (SSMS)?

  4. Test af ODBC-laget