Можете да използвате 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 секунди за предишния метод.