Можете да използвате reverse заедно с substring и charindex за да получите това, което търсите:
select
reverse(substring(reverse(filename), 1,
charindex('.', reverse(filename))-1)) as FileExt
from
mytable
Това издържа, дори ако имате няколко . във вашия файл (напр.-hello.world.exe ще върне exe ).
Така че си поиграх малко с това, а това е друг начин (само едно извикване на reverse ):
select
SUBSTRING(filename,
LEN(filename)-(CHARINDEX('.', reverse(filename))-2), 8000) as FileExt
from
mytable
Това изчислява 10 000 000 реда за 25 секунди срещу 29 секунди за предишния метод.