SELECT
LTRIM(
RTRIM(
REVERSE(
SUBSTRING(
REVERSE(FullFilePath),
0,
CHARINDEX('\', REVERSE(FullFilePath),0)
)
)
)
)
FROM FileSystem
此代码取自http://www.kodyaz.com/articles/how-to-extract-filename-from-path-using-sql-functions.aspx。
如何更改它以便仅检索没有文件名的文件路径?
答案 0 :(得分:1)
你想要在最后'\'
之前的所有内容,所以像这样:
select left(FullFilePath,
len(FullFilePath) - charindex('\', reverse(FullFilePath) - 1)
)
答案 1 :(得分:1)
尝试以下内容:
SELECT LEFT(FullFilePath, LEN(FullFilePath) - CHARINDEX('\', REVERSE(FullFilePath)) + 1)
示例数据
CREATE TABLE #FileSystem (
FileID int identity(1,1),
FullFilePath nvarchar(1000)
)
INSERT INTO #FileSystem VALUES (
N'D:\SQLDatabases\SQLSampleDatabase.mdf'
);
INSERT INTO #FileSystem VALUES (
N'C:\Program Files\Microsoft SQL Server\100\Samples\License.rtf'
);
<强>输出强>
D:\SQLDatabases\
C:\Program Files\Microsoft SQL Server\100\Samples\
答案 2 :(得分:1)
Select REVERSE(
SUBSTRING(REVERSE(FullFilePath),CHARINDEX('\',REVERSE(FullFilePath),0),
LEN(FullFilePath)))
FROM FileSystem
试试这个,它有效。