powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите размотать иерархию в плоскую таблицу
4 сообщений из 4, страница 1 из 1
Помогите размотать иерархию в плоскую таблицу
    #39591839
MeGusta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
DROP TABLE #TREE

CREATE TABLE #TREE (Id varchar(36), ParentId varchar(36),  TheName varchar(300))
INSERT  INTO #TREE SELECT 'B129D19B-8C1F-43DF-BBEB-0DBE571A7E42', NULL, 'Животные'
INSERT  INTO #TREE SELECT 'B129D19B-8C1F-43DF-BBEB-0DBE571A4567', NULL, 'Гибы'
INSERT  INTO #TREE SELECT '507AEC62-FF8D-479E-97DA-322F284B471A', NULL, 'Растения'
INSERT  INTO #TREE SELECT 'BD959AFD-C52F-448C-9EAA-48EB94663B5C', 'B129D19B-8C1F-43DF-BBEB-0DBE571A7E42', 'Кошки'
INSERT  INTO #TREE SELECT 'C79E75BE-BE07-4CB4-9E2E-5BE0C51FF140', '507AEC62-FF8D-479E-97DA-322F284B471A', 'Ягоды'
INSERT  INTO #TREE SELECT '4610CD02-443C-4E42-BF45-96735F3601F2', 'BD959AFD-C52F-448C-9EAA-48EB94663B5C', 'Сибирский Кот'
INSERT  INTO #TREE SELECT '24CCA1E7-D43B-4111-B5DB-DEE978CD925A', 'C79E75BE-BE07-4CB4-9E2E-5BE0C51FF140', 'Клубника'
INSERT  INTO #TREE SELECT '62BA94F3-318C-47B4-B11D-EFDA3585E4CD', 'BD959AFD-C52F-448C-9EAA-48EB94663B5C', 'Персы'
INSERT  INTO #TREE SELECT '367B81E4-D51D-4753-9A27-F3F9390A8960', 'C79E75BE-BE07-4CB4-9E2E-5BE0C51FF140', 'Земляника'
INSERT  INTO #TREE SELECT '563B81E4-D51D-4252-9A27-AB2390A7475', 'B129D19B-8C1F-43DF-BBEB-0DBE571A4567', 'Вешенки'

;WITH CTE AS 
(
SELECT Id AS ID,  1 AS Lvl, ParentID AS ParentID , TheName AS TheName from #TREE WHERE ParentId IS NULL 
UNION ALL 
SELECT   T.ID AS ID,  Lvl + 1  AS LVL  ,  T.ParentId AS ParentID  ,   T.TheName  AS TheName from CTE C  
INNER JOIN #TREE T ON T.ParentId = C.ID 
)
SELECT * FROM CTE
 



Как перевести вот такой справочник в плоскую таблицу, с путями в HIERARCHYID?
...
Рейтинг: 0 / 0
Помогите размотать иерархию в плоскую таблицу
    #39591920
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если попробовать почитать доку, то там даж пример есть преобразование таблицы в иерархическую структуру
...
Рейтинг: 0 / 0
Помогите размотать иерархию в плоскую таблицу
    #39592593
MeGusta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще не помогает, плохая дока.

Например, там на входе цифры, а у меня гуиды.
Например, GetRoot() начинает иерархию с 0х, а пример не предлагает варианта, когда у нас несколько "корней" в одной таблице.
Таким образом оказывается, что "СибирскийКот" и "Земляника" сидят в одной ветке.
...
Рейтинг: 0 / 0
Помогите размотать иерархию в плоскую таблицу
    #39592847
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MeGusta
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
DROP TABLE #TREE

CREATE TABLE #TREE (Id varchar(36), ParentId varchar(36),  TheName varchar(300))
INSERT  INTO #TREE SELECT 'B129D19B-8C1F-43DF-BBEB-0DBE571A7E42', NULL, 'Животные'
INSERT  INTO #TREE SELECT 'B129D19B-8C1F-43DF-BBEB-0DBE571A4567', NULL, '[color=red]Гибы[/color]'
INSERT  INTO #TREE SELECT '507AEC62-FF8D-479E-97DA-322F284B471A', NULL, 'Растения'
INSERT  INTO #TREE SELECT 'BD959AFD-C52F-448C-9EAA-48EB94663B5C', 'B129D19B-8C1F-43DF-BBEB-0DBE571A7E42', 'Кошки'
INSERT  INTO #TREE SELECT 'C79E75BE-BE07-4CB4-9E2E-5BE0C51FF140', '507AEC62-FF8D-479E-97DA-322F284B471A', 'Ягоды'
INSERT  INTO #TREE SELECT '4610CD02-443C-4E42-BF45-96735F3601F2', 'BD959AFD-C52F-448C-9EAA-48EB94663B5C', 'Сибирский Кот'
INSERT  INTO #TREE SELECT '24CCA1E7-D43B-4111-B5DB-DEE978CD925A', 'C79E75BE-BE07-4CB4-9E2E-5BE0C51FF140', 'Клубника'
INSERT  INTO #TREE SELECT '62BA94F3-318C-47B4-B11D-EFDA3585E4CD', 'BD959AFD-C52F-448C-9EAA-48EB94663B5C', 'Персы'
INSERT  INTO #TREE SELECT '367B81E4-D51D-4753-9A27-F3F9390A8960', 'C79E75BE-BE07-4CB4-9E2E-5BE0C51FF140', 'Земляника'
INSERT  INTO #TREE SELECT '563B81E4-D51D-4252-9A27-AB2390A7475', 'B129D19B-8C1F-43DF-BBEB-0DBE571A4567', 'Вешенки'

;WITH CTE AS 
(
SELECT Id AS ID,  1 AS Lvl, ParentID AS ParentID , TheName AS TheName from #TREE WHERE ParentId IS NULL 
UNION ALL 
SELECT   T.ID AS ID,  Lvl + 1  AS LVL  ,  T.ParentId AS ParentID  ,   T.TheName  AS TheName from CTE C  
INNER JOIN #TREE T ON T.ParentId = C.ID 
)
SELECT * FROM CTE
 



Как перевести вот такой справочник в плоскую таблицу, с путями в HIERARCHYID?

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


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