sql >> Databasteknik >  >> RDS >> Oracle

Oracle:Ersätter icke-numeriska tecken i en sträng

Du kan använda REGEXP_REPLACE sedan Oracle 10:

SELECT REGEXP_REPLACE('+34 (947) 123 456 ext. 2013', '[^0-9]+', '')
FROM DUAL

Det här exemplet returnerar 349471234562013 .

Alternativa syntaxer inkluderar:

  • POSIX-teckenklasser:

    '[^[:digit:]]+'
    
  • Perl-influerade tillägg (sedan Oracle 11):

    '\D+'
    


  1. SQL Server-autentisering vs. Windows-autentisering:Vilken ska användas och när

  2. Oracle optimerar OR + IN till OR + EXISTS vilket är väldigt långsamt

  3. mySQL - matchande latin (engelska) formulärinmatning till utf8 (icke-engelska) data

  4. Specifik tidsintervallsfråga i SQL Server