sql >> Database >  >> RDS >> Sqlserver

Substring ophalen in SQL Server

U kunt reverse . gebruiken samen met substring en charindex om te krijgen wat u zoekt:

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

Dit houdt stand, zelfs als je meerdere . in uw bestand (bijv.-hello.world.exe retourneert exe ).

Dus ik was hier een beetje mee aan het spelen, en dit is een andere manier (slechts één aanroep om reverse ):

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

Dit berekent 10.000.000 rijen in 25 seconden versus 29 seconden voor de vorige methode.



  1. phpMyAdmin - kan geen verbinding maken - ongeldige instellingen - sinds ik een root-wachtwoord heb toegevoegd - vergrendeld

  2. SQL Server - voeg rijen samen in een door komma's gescheiden lijst

  3. Een tabel met een specifieke kolom vinden in postgresql

  4. Hoe de automatische verhogingswaarde van MySQL / MariaDB-database te wijzigen?