Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
ITW Member Откуда: Сообщений: 52 |
Доброе время суток! Есть таблица ветки категорий с id и Parentid. Задача заключается в следующем: нужно для каждой категории собрать в одну стоку все ID которые к ней относятся. Например: declare @t table ( [id] [bigint], [Parentid] [bigint], [Name] [nvarchar](50) ) insert into @t select 1 as [Id], Null [Parentid] , N'Категория1'[Name] union all select 2 as [Id], 1 [Parentid] , N'Категория2'[Name] union all select 3 as [Id], 2 [Parentid] , N'Категория3'[Name] union all select 4 as [Id], 2 [Parentid] , N'Категория4'[Name] union all select 5 as [Id], Null [Parentid] , N'Категория5'[Name] union all select 6 as [Id], 5 [Parentid] , N'Категория6'[Name] select * from @t; результат должен быть:
Задача возможно уже и обсуждалась, но поиск ничего не дал. Заранее спасибо! |
|||||||||||||||||||||||||
4 дек 14, 18:36 [16951774] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Настолько часто, что уже включена в FAQ |
||
4 дек 14, 18:38 [16951786] Ответить | Цитировать Сообщить модератору |
Minamoto Member Откуда: Москва Сообщений: 1162 |
ITW, задача разделяется на две части: 1) построить рекурсивный запрос - т.е. для каждой категории найти перечень всех ее дочерних категорий 2) объединить строки с дочерними категориями в одну. Вторая задача действительно есть в FAQ. Первая даже проще, можно легко найти на том же MSDN: http://msdn.microsoft.com/ru-ru/library/ms175972.aspx, пример Г. |
4 дек 14, 18:44 [16951825] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8308 |
ITW, рассмотрите переход на тип данных hierarchyid, это избавит от рекурсии, как минимум. |
5 дек 14, 11:38 [16954313] Ответить | Цитировать Сообщить модератору |
yaxta Member Откуда: азербайджан,баку Сообщений: 518 |
дорогой автор вы же решали етот проблемы? |
5 дек 14, 15:01 [16956153] Ответить | Цитировать Сообщить модератору |
yaxta Member Откуда: азербайджан,баку Сообщений: 518 |
и версия скл какая? |
5 дек 14, 15:01 [16956158] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |