sql >> Database teknologi >  >> RDS >> Sqlserver

Hent understreng i SQL Server

Du kan bruge reverse sammen med substring og charindex for at få det, du leder efter:

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

Dette holder, selvom du har flere . i din fil (f.eks.-hello.world.exe vil returnere exe ).

Så jeg legede lidt med det her, og det er en anden måde (kun ét opkald til reverse ):

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

Dette beregner 10.000.000 rækker på 25 sekunder mod 29 sekunder for den tidligere metode.



  1. JSON_OBJECT() Funktion i Oracle

  2. Kan ikke sende strengværdi 1,2 som input til en orakelforespørgsel

  3. SQL-injektioner i ADOdb og generel hjemmesidesikkerhed

  4. Definer trinene for SQL Server Cursor - SQL Server / TSQL Tutorial