iriyawin / plc_test

0 stars 0 forks source link

задача3 #3

Open iriyawin opened 6 years ago

iriyawin commented 6 years ago

Есть таблица с данными в виде дерева. Необходимо написать запрос для получения дерева от корневого узла, узел 5 и все его потомки не должны попасть в результат, нужно вывести для каждого узла имя его родителя, данные отсортировать в порядке возрастания ID с учетом иерархии create​ ​table​ ​ t​ (​id​ ​number​, ​pid​ ​number​, ​nam​ ​varchar2​ (​255​)); Пример данных: ID PID NAM 1 Корень 2 1 Узел2 3 1 Узел3 4 2 Узел4 5 4 Узел5 6 5 Узел6 7 4 Узел7 Требуемый результат: ID PID NAM PARENT_NAM 1 Корень 2 1 Узел2 Корень 4 2 Узел4 Узел2 7 4 Узел7 Узел4 3 1 Узел3 Корень

iriyawin commented 6 years ago

oracle 10g: SELECT t.id, t.pid, t.nam, PRIOR t.nam AS parent_nam FROM tree t START WITH t.pid IS NULL CONNECT BY PRIOR t.id = t.pid AND t.id <> 5;