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.