我有以下分层表:什么是最简单或最简单的方法将这个heirarchical表格变成一张平坦的表格?
Table Category:
CategoryId, ParentCategoryId, CategoryName
1, null, SomeRoot
2, 1, SomeChild
3, 2, SomeGrandchild
4, 3, SomeGreatGrandchild
(注意,这样的数据不包括除第4级的较早节点上的叶,但这是可能的)。如果相关的话,数据永远不会比第4级更深。我想变换/它旋转到这个固定的4级显示
CatId, Name1, Name2, Name3, Name4
1, SomeRoot, null, null, null
2, SomeRoot, SomeChild, null, null
3, SomeRoot, SomeChild, SomeGrandchild, null
4, SomeRoot, SomeChild, SomeGrandchild, SomeGreatGrandchild
我已经做了左外连接的类别表4倍,并建立了一个巨大的case语句用于检测水平,使用的ID字段,但不包括空行....任何想法?帮帮我!
您需要告诉我们数据是否始终有
jcollum
2009-09-04 20:10:46
@jcollum更新问:如果相关,数据将永远不会比第4级更深。 – TheSoftwareJedi 2009-09-04 20:13:24
如果它具有未知级别的递归,则要使用CTE。对于已知和小的递归级别,我听说CTE有太多的开销,所以子查询更好。 – jcollum 2009-09-04 20:32:11