Você pode usar
reverse
junto com substring
e charindex
para obter o que procura:select
reverse(substring(reverse(filename), 1,
charindex('.', reverse(filename))-1)) as FileExt
from
mytable
Isso é válido, mesmo se você tiver vários
.
em seu arquivo (por exemplo-hello.world.exe
retornará exe
). Então eu estava brincando um pouco com isso, e essa é outra maneira (apenas uma chamada para
reverse
):select
SUBSTRING(filename,
LEN(filename)-(CHARINDEX('.', reverse(filename))-2), 8000) as FileExt
from
mytable
Isso calcula 10.000.000 de linhas em 25 segundos versus 29 segundos para o método anterior.