reverseを使用できます substringと一緒に およびcharindex 探しているものを入手するには:
select
reverse(substring(reverse(filename), 1,
charindex('.', reverse(filename))-1)) as FileExt
from
mytable
複数の.がある場合でも、これは維持されます。 ファイル内(例:-hello.world.exe exeを返します 。
だから私はこれで少し遊んでいました、そしてこれは別の方法です(reverseへの1回の呼び出しだけ ):
select
SUBSTRING(filename,
LEN(filename)-(CHARINDEX('.', reverse(filename))-2), 8000) as FileExt
from
mytable
これにより、25秒で10,000,000行が計算されますが、前者の方法では29秒でした。