Anda dapat menggunakan reverse
bersama dengan substring
dan charindex
untuk mendapatkan apa yang Anda cari:
select
reverse(substring(reverse(filename), 1,
charindex('.', reverse(filename))-1)) as FileExt
from
mytable
Ini bertahan, meskipun Anda memiliki beberapa .
di file Anda (mis.-hello.world.exe
akan mengembalikan exe
).
Jadi saya bermain-main sedikit dengan ini, dan ini adalah cara lain (hanya satu panggilan ke reverse
):
select
SUBSTRING(filename,
LEN(filename)-(CHARINDEX('.', reverse(filename))-2), 8000) as FileExt
from
mytable
Ini menghitung 10.000.000 baris dalam 25 detik versus 29 detik untuk metode sebelumnya.