Můžete použít reverse spolu s substring a charindex abyste získali to, co hledáte:
select
reverse(substring(reverse(filename), 1,
charindex('.', reverse(filename))-1)) as FileExt
from
mytable
To platí, i když máte více . ve vašem souboru (např.-hello.world.exe vrátí exe ).
Tak jsem si s tím trochu pohrál a tohle je další způsob (pouze jedno volání reverse ):
select
SUBSTRING(filename,
LEN(filename)-(CHARINDEX('.', reverse(filename))-2), 8000) as FileExt
from
mytable
To vypočítá 10 000 000 řádků za 25 sekund oproti 29 sekundám u předchozí metody.