从sql server中没有扩展名的filepath获取文件名

时间:2014-11-10 09:22:31

标签: sql

请让我知道如何只从文件路径中获取没有扩展名的文件名。 像

我在数据库中有文件路径

Attachments\abc\demo.jpg

我只想获得

 demo

如何在没有扩展和完整路径的情况下获得此功能。

由于

2 个答案:

答案 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];