一个简单的递归cte?我认为

时间:2011-05-02 23:21:46

标签: sql-server-2005 common-table-expression recursive-query

我有一个表“类别”,其中包含以下字段:

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

我想将结果集作为一个树状结构取回,所以我正在尝试为它写一个cte。这棵树只有4层深。 第一次用cte和我很困惑,根本不熟悉sql server。

另外,我在桌面设计中没有发言权,这就是我所坚持的。

这是我没有运气的尝试

'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]'    

感谢任何建议

0 个答案:

没有答案