请让我知道如何只从文件路径中获取没有扩展名的文件名。 像
我在数据库中有文件路径
Attachments\abc\demo.jpg
我只想获得
demo
如何在没有扩展和完整路径的情况下获得此功能。
由于
答案 0 :(得分:3)
没有简单的方法可以做你想做的事。
DECLARE @Path varchar(200);
DECLARE @FNamePos INT;
DECLARE @ExtensionStart INT;
SELECT
@Path = 'Attachments\abc\demo.jpg'
, @FNamePos = CHARINDEX('\',REVERSE(@Path))
, @ExtensionStart=CHARINDEX('.',REVERSE(@Path))
SELECT SUBSTRING(@Path,LEN(@Path)-@FNamePos+2,@FnamePos-@ExtensionStart-1)
答案 1 :(得分:0)
WITH cte_sample AS
(
SELECT filepath = '/rootfolder/subfolder/myfile.csv'
)
SELECT
filepath
,fullfilename = REVERSE(SUBSTRING( REVERSE(filepath), 1, CHARINDEX('/',REVERSE(filepath)) - 1 ))
,filenamenoextension = REVERSE(SUBSTRING( REVERSE(filepath), CHARINDEX('.',REVERSE(filepath)) + 1, CHARINDEX('/',REVERSE(filepath)) - CHARINDEX('.',REVERSE(filepath)) -1 ))
FROM [cte_sample];