在SQL Server 2012中,我有以下工作代碼來提取文件名和最低文件夾名。可以有任何級別的子文件夾 - 我只需要最內層的文件夾和文件名稱。 SQL Server中有更容易閱讀的方法嗎?從SQL Server中獲取完整文件名的最後一個文件夾和文件名
預期結果
MySubFolder/MyFile_4.0_20170901031307_2697.zip
當前工作SQL
DECLARE @FileName varchar(200) = 'D:\SourceFiles\MyFolder\MySubFolder\MyFile_4.0_20170901031307_2697.zip'
DECLARE @TotalRecords INT
DECLARE @SectionName VARCHAR(128)
DECLARE @FileOnly VARCHAR(128)
SET @FileName = REPLACE(@FileName, '/', '\')
DECLARE @xml xml = '<r><n>' + REPLACE(@FileName, '\', '</n><n>') + '</n></r>'
DECLARE @FoldersList TABLE(FId INT IDENTITY(1,1), FolderOrFileName VARCHAR(128))
INSERT INTO @FoldersList (FolderOrFileName)
SELECT n.value('.', 'varchar(200)')
FROM @xml.nodes('r/n') n(n)
SELECT @TotalRecords = COUNT(*) FROM @FoldersList
SELECT @SectionName = FolderOrFileName FROM @FoldersList WHERE Fid = (@TotalRecords - 1)
SELECT @FileOnly = FolderOrFileName FROM @FoldersList WHERE Fid = (@TotalRecords)
SELECT @SectionName+'/'[email protected]
他們正試圖解析字符串。沒有指示文件夾甚至在服務器上。 –
爲字符串添加了一個版本。我不認爲這是事實,因爲你知道@MartinSmith,這已經被問過很多次了。感謝您向我指出 – scsimon