простой рекурсивный cte? Я думаю - PullRequest
0 голосов
/ 03 мая 2011

У меня есть таблица «Категория» со следующими полями:

[id]
[category]
[childCategory]
[parentId]

Я хотел бы получить набор результатов в виде древовидной структуры, поэтому я пытаюсь написать для нее cte.Дерево идет только на 4 уровня.Первый раз с cte, и я довольно смущен этим, совсем не знаком с сервером sql.

Кроме того, я не могу сказать о дизайне стола, это то, с чем я застрял.

Вот то, что я попробовал без удачи

'WITH  cte ( category [Level])
      AS (
         SELECT  id, category, parentId, childCategory, 0 as [Level]
         FROM    Category
         WHERE   parentId IS NULL AND childCategory IS NULL
         UNION ALL
         SELECT  t.id, t.category, t.parentId, t.childCategory, [Level] + 1
         FROM    Category AS t
                 JOIN cte AS a
                   ON t.parentId = a.id
        )
 SELECT * FROM cte order by category, [Level]'    

спасибо за любые предложения

...