您将如何更改此代码以检索没有文件名的文件路径?
How would you change this code in order to retrieve the filepath without the filename?
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。
如何更改它以便只检索没有文件名的文件路径?
你想要最后一个 '\'
之前的所有内容,所以像这样:
select left(FullFilePath,
len(FullFilePath) - charindex('\', reverse(FullFilePath) - 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 Server0\Samples\License.rtf'
);
输出
D:\SQLDatabases\
C:\Program Files\Microsoft SQL Server0\Samples\
Select REVERSE(
SUBSTRING(REVERSE(FullFilePath),CHARINDEX('\',REVERSE(FullFilePath),0),
LEN(FullFilePath)))
FROM FileSystem
试试这个,它有效。
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。
如何更改它以便只检索没有文件名的文件路径?
你想要最后一个 '\'
之前的所有内容,所以像这样:
select left(FullFilePath,
len(FullFilePath) - charindex('\', reverse(FullFilePath) - 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 Server0\Samples\License.rtf'
);
输出
D:\SQLDatabases\
C:\Program Files\Microsoft SQL Server0\Samples\
Select REVERSE(
SUBSTRING(REVERSE(FullFilePath),CHARINDEX('\',REVERSE(FullFilePath),0),
LEN(FullFilePath)))
FROM FileSystem
试试这个,它有效。