sql >> Databasteknik >  >> RDS >> Oracle

Trimma blanksteg (ny rad och tabbutrymme) i en sträng i Oracle

Om du har Oracle 10g, REGEXP_REPLACE är ganska flexibel.

Använder följande sträng som ett test:

chr(9) || 'Q   qwer' || chr(9) || chr(10) ||
chr(13) || 'qwerqwer     qwerty' || chr(9) || 
chr(10) || chr(13)

[[:space:]] kommer att ta bort alla blanksteg och ([[:cntrl:]])|(^\t) regexp tar bort tecken och flikar som inte skrivs ut.

select
    tester,
    regexp_replace(tester, '(^[[:space:]]+)|([[:space:]]+$)',null)
            regexp_tester_1,
    regexp_replace(tester, '(^[[:cntrl:]^\t]+)|([[:cntrl:]^\t]+$)',null) 
            regexp_tester_2
from
    (
    select
        chr(9) || 'Q   qwer' || chr(9) || chr(10) ||
                chr(13) || 'qwerqwer     qwerty' || chr(9) || 
                chr(10) || chr(13) tester 
    from 
        dual
    )

Återkommer:

  • REGEXP_TESTER_1 :"Qqwerqwerqwerqwerty "
  • REGEXP_TESTER_2 :"Q qwerqwerqwer qwerty "

Hoppas detta är till någon nytta.



  1. Hur man ansluter till mysql från C# över SSH

  2. rake db:create - sorteringsproblem

  3. Exempel på att konvertera "datum" till "datetime2" i SQL Server (T-SQL)

  4. Vad är en bokmärkessökning i SQL Server?