powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Сортировка дерева - как сделать на SQL-запросе?
5 сообщений из 5, страница 1 из 1
Сортировка дерева - как сделать на SQL-запросе?
    #32758560
Yuri Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго утра!

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

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

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

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

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

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


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