Sie können reverse
verwenden zusammen mit substring
und charindex
um zu bekommen, wonach Sie suchen:
select
reverse(substring(reverse(filename), 1,
charindex('.', reverse(filename))-1)) as FileExt
from
mytable
Dies gilt auch dann, wenn Sie mehrere .
haben in Ihrer Datei (z. B. -hello.world.exe
gibt exe
zurück ).
Also habe ich ein bisschen damit herumgespielt, und das ist ein anderer Weg (nur ein Aufruf von reverse
):
select
SUBSTRING(filename,
LEN(filename)-(CHARINDEX('.', reverse(filename))-2), 8000) as FileExt
from
mytable
Dies berechnet 10.000.000 Zeilen in 25 Sekunden gegenüber 29 Sekunden bei der vorherigen Methode.