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

Откуда:
Сообщений: 9
create table @array
(
id int,
parent int,
cod varchar(20),
name varchar(20)
)

insert into @array (id, parent, cod,name) values (1, 0, '1', 'Узел1')
insert into @array (id, parent,cod, name) values (2, 1, '1.1', 'Узел2')
insert into @array (id, parent,cod, name) values (3, 1, '1.2', 'Узел3')
insert into @array (id, parent,cod, name) values (4, 0, '2', 'Узел4')
insert into @array (id, parent,cod, name) values (5, 4, '2.1', 'Узел5')
insert into @array (id, parent,cod, name) values (6, 4, '2.2', 'Узел6')

теперь нужно вывести данные в виде дерева. Спасибо
14 ноя 12, 09:57    [13469419]     Ответить | Цитировать Сообщить модератору
 Re: построение дерева  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37254
Вывести куда?
14 ноя 12, 10:01    [13469438]     Ответить | Цитировать Сообщить модератору
 Re: построение дерева  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
shynar_a,

Проектирование баз данных: иерархические структуры. Деревья в SQL
Выберите удобный Вам вариант, если есть возможность по-другому спроектировать таблицу.
14 ноя 12, 10:02    [13469440]     Ответить | Цитировать Сообщить модератору
 Re: построение дерева  [new]
shynar_a
Member

Откуда:
Сообщений: 9
Гавриленко Сергей Алексеевич,

В другой таблице нужно вывести данные в виде дерева
14 ноя 12, 10:05    [13469461]     Ответить | Цитировать Сообщить модератору
 Re: построение дерева  [new]
shynar_a
Member

Откуда:
Сообщений: 9
trew,

спасибо
14 ноя 12, 10:06    [13469470]     Ответить | Цитировать Сообщить модератору
 Re: построение дерева  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37254
shynar_a
Гавриленко Сергей Алексеевич,

В другой таблице нужно вывести данные в виде дерева
В какой еще другой таблице?
14 ноя 12, 10:07    [13469474]     Ответить | Цитировать Сообщить модератору
 Re: построение дерева  [new]
shynar_a
Member

Откуда:
Сообщений: 9
Гавриленко Сергей Алексеевич,
Запросом нужно вывести эту таблицу в виде дерева.
14 ноя 12, 10:11    [13469498]     Ответить | Цитировать Сообщить модератору
 Re: построение дерева  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37254
shynar_a
Гавриленко Сергей Алексеевич,
Запросом нужно вывести эту таблицу в виде дерева.
select * from  @array
14 ноя 12, 10:13    [13469512]     Ответить | Цитировать Сообщить модератору
 Re: построение дерева  [new]
shynar_a
Member

Откуда:
Сообщений: 9
Гавриленко Сергей Алексеевич,

А если данные будут беспорядочны?
14 ноя 12, 10:17    [13469547]     Ответить | Цитировать Сообщить модератору
 Re: построение дерева  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37254
shynar_a
Гавриленко Сергей Алексеевич,

А если данные будут беспорядочны?
Тогда напишите нужный order by.
14 ноя 12, 10:19    [13469567]     Ответить | Цитировать Сообщить модератору
 Re: построение дерева  [new]
shynar_a
Member

Откуда:
Сообщений: 9
Гавриленко Сергей Алексеевич,

А если:
create table @array
(
id int,
parent int,
cod varchar(20),
name varchar(20)
)

insert into @array (id, parent, cod,name) values (235, 0, '1', 'Узел1')
insert into @array (id, parent,cod, name) values (845, 235, '1.1', 'Узел2')
insert into @array (id, parent,cod, name) values (336, 332, '1.2', 'Узел3')
insert into @array (id, parent,cod, name) values (332, 111, '2', 'Узел4')
insert into @array (id, parent,cod, name) values (111, 0, '2.1', 'Узел5')
insert into @array (id, parent,cod, name) values (6, 845, '2.2', 'Узел6')
14 ноя 12, 10:26    [13469607]     Ответить | Цитировать Сообщить модератору
 Re: построение дерева  [new]
shynar_a
Member

Откуда:
Сообщений: 9
в данных примерах нужно указывать корень поддерева или IS NULL для корня целого дерева. А как вывести все дерево? У меня выходит только первый уровень
14 ноя 12, 11:01    [13469857]     Ответить | Цитировать Сообщить модератору
 Re: построение дерева  [new]
shynar_a
Member

Откуда:
Сообщений: 9
trew,

в данных примерах нужно указывать корень поддерева или IS NULL для корня целого дерева. А как вывести все дерево? У меня выходит только первый уровень
14 ноя 12, 11:03    [13469868]     Ответить | Цитировать Сообщить модератору
 Re: построение дерева  [new]
AxuliON
Member

Откуда: оттуда, и на лыжах
Сообщений: 574
Гавриленко Сергей Алексеевич
shynar_a
Гавриленко Сергей Алексеевич,

А если данные будут беспорядочны?
Тогда напишите нужный order by.


Тут по ходу клинический случай.
select * from @array order by [parent] asc, [id] asc


Вообще-то если хотите отобразить ДЕРЕВО по данным из таблицы, то наверное подойдет TreeView
14 ноя 12, 11:05    [13469878]     Ответить | Цитировать Сообщить модератору
 Re: построение дерева  [new]
super-code
Member

Откуда:
Сообщений: 244
shynar_a, google: MSDN with cte рекурсивные запросы
14 ноя 12, 13:09    [13471281]     Ответить | Цитировать Сообщить модератору
 Re: построение дерева  [new]
AxuliON
Member

Откуда: оттуда, и на лыжах
Сообщений: 574
super-code
shynar_a, google: MSDN with cte рекурсивные запросы

C рекурсией тут аккуратно надо быть, чтобы и ошибку не получить с MAXRECURSION и в бесконечный цикл не впасть.
14 ноя 12, 13:40    [13471689]     Ответить | Цитировать Сообщить модератору
 Re: построение дерева  [new]
rpuLLIa
Member

Откуда:
Сообщений: 23
shynar_a,

обратите внимание на тип hierarchyid
удобная штука
14 ноя 12, 13:45    [13471756]     Ответить | Цитировать Сообщить модератору
 Re: построение дерева  [new]
AxuliON
Member

Откуда: оттуда, и на лыжах
Сообщений: 574
rpuLLIa
shynar_a,

обратите внимание на тип hierarchyid
удобная штука


Согласен, но он есть только от 2008 и выше
14 ноя 12, 14:05    [13471957]     Ответить | Цитировать Сообщить модератору
 Re: построение дерева  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
rpuLLIa
shynar_a,

обратите внимание на тип hierarchyid
удобная штука

Удобная штука или Удобная шутка?

7713554
Это нормально, если приходится использовать триггеры для этого типа данных?
14 ноя 12, 14:51    [13472416]     Ответить | Цитировать Сообщить модератору
 Re: построение дерева  [new]
shynar_a
Member

Откуда:
Сообщений: 9
AxuliON,

С рекурсией не выходит, я несколько вариантов пробовала
14 ноя 12, 17:04    [13473752]     Ответить | Цитировать Сообщить модератору
 Re: построение дерева  [new]
Glory
Member

Откуда:
Сообщений: 104751
shynar_a
С рекурсией не выходит, я несколько вариантов пробовала

Ну так покажите хоть один
14 ноя 12, 17:05    [13473763]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить