如何从sql中的文件路径中同时提取foldername和filename?

gorkyyrv  于 2021-07-27  发布在  Java
关注(0)|答案(1)|浏览(309)

我在试着提取

category1/filename.txt

从小路上

/path/to/foldername/category1/filename.txt

我已经在sql中创建了一个函数,并且能够 /filename.txt ,但也需要foldername。
p、 路径可以是动态的,只需要最后两个实体从完整的文件夹路径。代码:

(
    @Path NVARCHAR(MAX)
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
    DECLARE @FileName NVARCHAR(MAX)

    DECLARE @ReversedPath NVARCHAR(MAX)

    SET @ReversedPath = REVERSE(@Path)
    SELECT @FileName = RIGHT(@Path, CHARINDEX('\', @ReversedPath))

    RETURN @FileName
END
9avjhtql

9avjhtql1#

最简单的方法是使用几个嵌套的 CHARINDEX 功能和 REVERSE :

DECLARE @YourString nvarchar(256) = '/path/to/foldername/category1/filename.txt';

SELECT @YourString,
       RIGHT(@YourString, CI2.I-1)
FROM (VALUES(CHARINDEX('/',REVERSE(@YourString))))CI1(I)
     CROSS APPLY (VALUES(CHARINDEX('/',REVERSE(@YourString),CI1.I+1)))CI2(I);

相关问题