Vous pouvez utiliser reverse avec substring et charindex pour obtenir ce que vous cherchez :
select
reverse(substring(reverse(filename), 1,
charindex('.', reverse(filename))-1)) as FileExt
from
mytable
Cela tient, même si vous avez plusieurs . dans votre fichier (par exemple-hello.world.exe renverra exe ).
Donc je jouais un peu avec ça, et c'est une autre façon (un seul appel à reverse ):
select
SUBSTRING(filename,
LEN(filename)-(CHARINDEX('.', reverse(filename))-2), 8000) as FileExt
from
mytable
Cela calcule 10 000 000 lignes en 25 secondes contre 29 secondes pour l'ancienne méthode.