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秒でした。