Du kan använda reverse tillsammans med substring och charindex för att få det du letar efter:
select
reverse(substring(reverse(filename), 1,
charindex('.', reverse(filename))-1)) as FileExt
from
mytable
Detta håller, även om du har flera . i din fil (t.ex.-hello.world.exe returnerar exe ).
Så jag lekte lite med det här, och det här är ett annat sätt (bara ett anrop för att reverse ):
select
SUBSTRING(filename,
LEN(filename)-(CHARINDEX('.', reverse(filename))-2), 8000) as FileExt
from
mytable
Detta beräknar 10 000 000 rader på 25 sekunder mot 29 sekunder för den tidigare metoden.