sql >> Databáze >  >> RDS >> Sqlserver

Získejte podřetězec v SQL Server

Můžete použít reverse spolu s substring a charindex abyste získali to, co hledáte:

select
    reverse(substring(reverse(filename), 1, 
        charindex('.', reverse(filename))-1)) as FileExt
from
    mytable

To platí, i když máte více . ve vašem souboru (např.-hello.world.exe vrátí exe ).

Tak jsem si s tím trochu pohrál a tohle je další způsob (pouze jedno volání reverse ):

select 
    SUBSTRING(filename, 
        LEN(filename)-(CHARINDEX('.', reverse(filename))-2), 8000) as FileExt
from
    mytable

To vypočítá 10 000 000 řádků za 25 sekund oproti 29 sekundám u předchozí metody.



  1. 4 Příklady anonymních bloků PL/SQL

  2. Konvence pojmenování PostgreSQL

  3. Checker Run

  4. Pochopení kontrolních omezení v PostgreSQL