sql >> Database teknologi >  >> RDS >> Oracle

Trim mellemrum (ny linje og tabulator) i en streng i Oracle

Hvis du har Oracle 10g, REGEXP_REPLACE er ret fleksibel.

Brug af følgende streng som en test:

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

[[:space:]] vil fjerne alt mellemrum, og ([[:cntrl:]])|(^\t) regexp vil fjerne ikke-udskrivende tegn og tabulatorer.

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
    )

Returnerer:

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

Håber dette er til noget.



  1. Gem PHP-kode på MySQL og få den til at køre

  2. Brug af en .php-fil til at generere en MySQL-dump

  3. Magento SQLSTATE fejl, hvis der er én vare tilbage i produktbeholdningen

  4. Sådan vælger du elementer, hvis de tæller mere end 3 i Laravel Query