我想从dot(.)上的拆分的最后一个序列中获取SQL Server中的子字符串.
我有一个包含文件名的列hello.exe,我希望找到与Path.GetExtension("filename")C#完全相同的文件扩展名.
Eri*_*ric 29
您可以使用reverse沿substring和charindex让你在找什么:
select
reverse(substring(reverse(filename), 1,
charindex('.', reverse(filename))-1)) as FileExt
from
mytable
Run Code Online (Sandbox Code Playgroud)
即使.您的文件中有多个(例如,hello.world.exe将返回exe),这也会成为现实.
所以我正在玩这个,这是另一种方式(只有一次调用reverse):
select
SUBSTRING(filename,
LEN(filename)-(CHARINDEX('.', reverse(filename))-2), 8000) as FileExt
from
mytable
Run Code Online (Sandbox Code Playgroud)
这在25秒内计算10,000,000行,而前一种方法计算29秒.
| 归档时间: |
|
| 查看次数: |
30864 次 |
| 最近记录: |