Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Для знатоков SQL: как представить дерево в виде таблицы?  [new]
AlexG
Member

Откуда: Санкт-Петербург
Сообщений: 912
Есть такая таблица, в которой описана иерархическая зависимость элементов:
IDNAMEPARENT
0Первая ветвь
3Вторая ветвь
6Третья ветвь
12120
15130
9110
18140
21213
24223
27316
30326
33336
3633133


Каким запросом можно получить такую выборку, основываясь на приведенной выше:
IDNAMEPARENTLEVEL
0Первая ветвь0
121201
151301
91101
181401
3Вторая ветвь0
212131
242231
6Третья ветвь0
273161
303261
333361
36331332


На присоединенной картинке представлено графическое исходное дерево:

К сообщению приложен файл. Размер - 0Kb
28 мар 06, 11:20    [2496364]     Ответить | Цитировать Сообщить модератору
 Re: Для знатоков SQL: как представить дерево в виде таблицы?  [new]
Goster
Member

Откуда: Питер->Москва
Сообщений: 438
SELECT *
FROM TABLE t
START WITH t.parent IS NULL
CONNECT BY PRIOR t.ID = t.PARENT
28 мар 06, 11:30    [2496435]     Ответить | Цитировать Сообщить модератору
 Re: Для знатоков SQL: как представить дерево в виде таблицы?  [new]
AlexG
Member

Откуда: Санкт-Петербург
Сообщений: 912
Да, это почти то, что нужно. А как поле с уровнем добавить?
28 мар 06, 11:37    [2496480]     Ответить | Цитировать Сообщить модератору
 Re: Для знатоков SQL: как представить дерево в виде таблицы?  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 6910
AlexG
А как поле с уровнем добавить?

level
28 мар 06, 11:38    [2496487]     Ответить | Цитировать Сообщить модератору
 Re: Для знатоков SQL: как представить дерево в виде таблицы?  [new]
Goster
Member

Откуда: Питер->Москва
Сообщений: 438
Более подробно про Hierarchical Queries можно посмотреть в документации. Например здесь:
Hierarchical Queries

А Ваш запрос в целом должен выглядеть так:
SELECT t.*, level
FROM TABLE t
START WITH t.parent IS NULL
CONNECT BY PRIOR t.ID = t.PARENT
28 мар 06, 13:35    [2497237]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить