powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / иерархический запрос
7 сообщений из 7, страница 1 из 1
иерархический запрос
    #32132022
roboforce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Oracle 8i
есть таблица doc в ней строки
docid docclass parentdocid
1 2
2 1
3 1
4 3 2
5 3 2
6 1

выдать надо в таком виде(понятно, что иерархически)
docid docclass parentdocid
1 2
2 1
4 3 2
5 3 2
3 1
6 1
думаю роль полей docid и parentdocid Вам понятна.
Я со своей стороны экспериментировал с connect by, однако неудачно,
поэтому обращаюсь к Вам.
...
Рейтинг: 0 / 0
иерархический запрос
    #32132075
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Ты не умничай, ты пальцем покажи". Непонятно, как _надо_ выдавать.
...
Рейтинг: 0 / 0
иерархический запрос
    #32132122
roboforce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
docid - оно и в африке ид,
parentdocid - содержит значение docid родителя
нужно вывести данные в иерархическом виде.

в таблице было так.
docid docclass parentdocid
1 2 null
2 1 null
3 1 null
4 3 2 - показывает, что родитель у него запись с docid=2
5 3 2 - показывает, что родитель у него запись с docid=2
6 1 null

нада получить так.
docid docclass parentdocid
1 2 null
2 1 null
4 3 2 - пошла иерархия
5 3 2 - ...
3 1 null
6 1 null

Пробовал так
select docid, docclassid, parentdocid from
(select 0 docid, 0 docclassid, 0 parentdocid from dual
union
select t.docid docid,t.docclassid docclassid, nvl(t.parentdocid,0) parentdocid
from doc t)
start with docid=0
connect by prior docid=parentdocid

однако был выруган
...
Рейтинг: 0 / 0
иерархический запрос
    #32132136
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
нада получить так. 
docid docclass parentdocid 
 1   2  null 
 2   1  null 
 4   3   2  - пошла иерархия 
 5   3   2  - ... 
 3   1  null 
 6   1  null 


Я сейчас рычать буду :)

Объясни словами, какую сортировку ты хочешь получить. Т.е., что-то вроде: "выборка отсортирована по docid в порядке возрастания, внутри - ...". И в таком духе. А то, например, не понятно, почему docid=3 идёт после docid 4, 5, а docid=2 - до 4, 5.
...
Рейтинг: 0 / 0
иерархический запрос
    #32132304
ламка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Молодой человек, видимо, хочет сказать, что после родителя идут его дети. Я прав?
...
Рейтинг: 0 / 0
иерархический запрос
    #32132309
Mergen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что неустраивает в следующем?
Код: plaintext
1.
2.
3.
4.
5.
select docid, docclassid, parentdocid from 
from doc
start with parentdocid IS NULL 
connect by prior docid=parentdocid 

...
Рейтинг: 0 / 0
иерархический запрос
    #32132321
ламка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему без PL/SQL здесь не обойтись, т.к. порядок следования строк нужен не такой, который выдаёт connect by.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / иерархический запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]