您将如何更改此代码以检索没有文件名的文件路径?

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

试试这个,它有效。