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

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

我在试着提取

  1. category1/filename.txt

从小路上

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

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

  1. (
  2. @Path NVARCHAR(MAX)
  3. )
  4. RETURNS NVARCHAR(MAX)
  5. AS
  6. BEGIN
  7. DECLARE @FileName NVARCHAR(MAX)
  8. DECLARE @ReversedPath NVARCHAR(MAX)
  9. SET @ReversedPath = REVERSE(@Path)
  10. SELECT @FileName = RIGHT(@Path, CHARINDEX('\', @ReversedPath))
  11. RETURN @FileName
  12. END
9avjhtql

9avjhtql1#

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

  1. DECLARE @YourString nvarchar(256) = '/path/to/foldername/category1/filename.txt';
  2. SELECT @YourString,
  3. RIGHT(@YourString, CI2.I-1)
  4. FROM (VALUES(CHARINDEX('/',REVERSE(@YourString))))CI1(I)
  5. CROSS APPLY (VALUES(CHARINDEX('/',REVERSE(@YourString),CI1.I+1)))CI2(I);

相关问题