在特定位置获取元素

时间:2019-07-09 23:45:11

标签: sql sql-server

从文件路径中查找上一个目录名的SQL语法是什么。 例如,我想获取上一个目录的名称,即C

输入

/ Directory_A / Directory_B / Directory_C / Folder1 / Folder2'

输出:
C

3 个答案:

答案 0 :(得分:1)

DECLARE @path VARCHAR(100)='/Directory_A/Directory_B/Directory_C/Folder1/Folder2'

SELECT SUBSTRING( @path,LEN(@path)-LEN(SUBSTRING(@path,PATINDEX('%folder%',@path), 100))-1, 1)

答案 1 :(得分:0)

您是否尝试过select rightleft?如果是字符串,我认为它是可行的。还有一些东西,你将不得不玩。

答案 2 :(得分:0)

SQL Server没有很好的字符串处理功能。但是,只要付出一些努力,您就可以做您想做的事。

关键思想是最后一个“ Directory_”是反向字符串中的第一个“ _yrotceriD”。然后进行一些调整即可得到您想要的东西:

select v.*, left(v.dir, charindex('/', v.dir) - 1) as dirname
from (values ('/Directory_A/Directory_B/Directory_C/Folder1/Folder2') ) t(path) cross apply
     (values (stuff(t.path, 1, len(t.path) - charindex(reverse('Directory_'), reverse(t.path)) + 1, ''))) v(dir)