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.