Bạn có thể sử dụng reverse
cùng với substring
và charindex
để có được những gì bạn đang tìm kiếm:
select
reverse(substring(reverse(filename), 1,
charindex('.', reverse(filename))-1)) as FileExt
from
mytable
Điều này ổn, ngay cả khi bạn có nhiều .
trong tệp của bạn (ví dụ:hello.world.exe
sẽ trả về exe
).
Vì vậy, tôi đã chơi xung quanh một chút với cách này, và đây là một cách khác (chỉ có một lệnh gọi đến reverse
):
select
SUBSTRING(filename,
LEN(filename)-(CHARINDEX('.', reverse(filename))-2), 8000) as FileExt
from
mytable
Phương pháp này tính toán 10.000.000 hàng trong 25 giây so với 29 giây cho phương pháp cũ.