получить элемент в определенной позиции - PullRequest
0 голосов
/ 10 июля 2019

Что такое синтаксис SQL для поиска последнего имени каталога по пути к файлу. Например, я хочу получить имя последнего каталога, то есть C

Ввод

/ Directory_A / Directory_B / Directory_C / Folder1 / Folder2'

Выход:
C

Ответы [ 3 ]

1 голос
/ 10 июля 2019
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)
0 голосов
/ 10 июля 2019

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)
0 голосов
/ 10 июля 2019

Вы пробовали select right или left?если это строка, я думаю, что это выполнимо.также там есть что-то, что вам придется поиграть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...