Запрос для поиска пути к папке и идентификатора конечного узла

#sql #oracle #hierarchical-data #recursive-query

#sql #Oracle #иерархический-данные #рекурсивный запрос

Вопрос:

У меня есть таблица в виде

введите описание изображения здесь

Я хочу создать SQL или процедуру для извлечения значений, как показано ниже

  FolderPath          LeafFolderID 

 Dept/CSE/Cfolder     100
 Dept/Mech            10
 Team/HR              22
 Settlement           3
  

Пожалуйста, дайте мне знать, как этого добиться?

Комментарии:

1. Вам нужен рекурсивный / иерархический запрос. Какую версию Oracle вы используете?

2. Версия Oracle 12c

Ответ №1:

Это connect by выполняет свою работу:

 select folderid, ltrim(sys_connect_by_path(foldername, '/'), '/') path
  from t
  where connect_by_isleaf = 1
  connect by folderparentid = to_char(prior folderid)
  start with folderparentid = 'Root'
  

ДЕМОНСТРАЦИЯ