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.