我有一个SQL Server 2008数据库。我有一个具有以下结构的表
CatID ParentCatID NAME Level
1 NULL A 1
2 1 B 2
3 2 C 3
4 NULL D 1
5 4 E 2
6 5 F 3
7 NULL G 1
8 7 H 2
我想以Heirarchical格式选择Name列,如下所示:
Level1 Level2 Level3
A B C
D E F
在我的表中,所有level1类别都有level2子级。同样,所有2级儿童都有3级儿童。那么我怎样才能以我想要的格式获取数据。
答案 0 :(得分:2)
这是一个简单的查询:
select
C1.NAME as Level1,
C2.NAME as Level2,
C3.NAME as Level3
from Categories C1
inner join Categories C2
on C2.ParentCatId = C1.CatId
inner join Categories C3
on C3.ParentCatId = C2.CatId
where C1.Level = 1 and C2.Level = 2 and C3.Level = 3 and