Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Сортировка дерева - как сделать на SQL-запросе? / 5 сообщений из 5, страница 1 из 1
28.10.2004, 10:52
    #32758560
Yuri Tyurin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка дерева - как сделать на SQL-запросе?
Всем доброго утра!

Код: plaintext
1.
2.
3.
4.
5.
6.
 Есть дерево вида примерно такого:

                   A
                 /   \
                B    C
              /     /   \
             F     D    E
Ну и так далее... Соответственно в базе это описано так:

Код: plaintext
1.
2.
3.
4.
5.
6.
Object     ParentObject
  B            A
  D            C
  C            A
  A            NULL
  E            C
  F            B

Подскажите пожалуйста, есть ли какой-нибудь запрос, позволяющий привезти эту базу к упорядоченному вида типа:

Код: plaintext
1.
2.
3.
4.
5.
6.
Object     ParentObject
  A            NULL
  B            A
  F            B
  C            A
  D            C
  E            C

Т.е. сначала пишем корень, потом входящие в него корни 2-го уровня со своими входящими и т. д. Можно конечно сделать это в цикле, с выводом в промежуточную базу, но хочется решение поэстетичнее найти...

Заранее спасибо!
Юрий.

Кто знает жизнь, тот не торопится... Удачи на дорогах!
...
Рейтинг: 0 / 0
28.10.2004, 11:47
    #32758725
LeXa NalBat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка дерева - как сделать на SQL-запросе?
Знаю, что иерархические запросы есть в оракле, постгресе. Посмотрите также поиск . авторМожно конечно сделать это в цикле, с выводом в промежуточную базуМожно еще с помощью собственной рекурсивной процедуры.
...
Рейтинг: 0 / 0
28.10.2004, 15:46
    #32759569
Yuri Tyurin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка дерева - как сделать на SQL-запросе?
LeXa NalBatЗнаю, что иерархические запросы есть в оракле, постгресе. Посмотрите также поиск . авторМожно конечно сделать это в цикле, с выводом в промежуточную базуМожно еще с помощью собственной рекурсивной процедуры.

Спасибо. :) Посмотрел... Но, если не ошибаюсь Sybase не очень-то позволяет запросы такого вида. Сделал на рекурсии.

Юрий.
...
Рейтинг: 0 / 0
02.11.2004, 20:54
    #32765684
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка дерева - как сделать на SQL-запросе?
Yuri TyurinВсем доброго утра!
Есть дерево вида примерно такого:
Подскажите пожалуйста, есть ли какой-нибудь запрос, позволяющий привезти эту базу к упорядоченному вида типа:

Нет, такого запроса нет, потому что на SQL такой запрос написать невозможно.
Некоторые СУБД предоставляют расширения типа CONNECT BY в Oracle , там - да, возможно.

На рекурсии тоже далеко не уедешь, поскольку кол-во рекурсивных вызовов тем или иным образом в СУБД ограничено.
Надо делать цикл и по честному выполнять проход по дереву, например, с использованием стека (своего, а не стека вызовов процедур).
...
Рейтинг: 0 / 0
03.11.2004, 10:29
    #32766075
Мастер SQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка дерева - как сделать на SQL-запросе?
В оракле есть спец столбец для деревянных запросов Level, по которой и сортируем с использованием стандартных средст т.е. ORDER BY

С уважением, Мастер SQL
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Сортировка дерева - как сделать на SQL-запросе? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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