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.