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)