--测试数据创建
create table T004
(
id int identity(1,1),
grade1 nvarchar(50),
grade2 nvarchar(50)
)
go
insert T004(grade1,grade2)
select 'Code','Code_01' union all
select 'Code','Code_02' union all
select 'Code','Code_03' union all
select 'Html','Html_01' union all
select 'Html','Html_02' union all
select 'Code','Code_04' union all
select 'Html','Html_03' union all
select 'Code','Code_05'
/*--求效果(类似树形菜单,但是表结构就目前这个结构)id list type(0:目录一级分类 1:目录二级分类)
0 Code 0
1 Code_01 1
2 Code_02 1
3 Code_03 1
6 Code_04 1
8 Code_05 1
0 Html 0
4 Html_01 1
5 Html_02 1
7 Html_03 1 ***/
解决方案 »
- 表与表数据的部分同步
- 求助--关于业务逻辑的实现层的困惑
- 关于SQL2005 递归查询形成树状结构问题
- ***如果就是****
- 请SQL 执行窗口下方一般有两个TAB,一个是results,一个是messages
- 批量插入后获取ID集的问题
- !!请教,关于连接查询
- 一个比较麻烦的SQLServer存储过程问题,不知道怎么说,请进来看下吧
- SQL_Server2000分析服务的数据仓库和数据挖掘很难懂,
- windows 8.1 64 位 安装的是sql server 2008 连接远程服务器失败
- 关于SQL查询的问题,跪求高手帮助!!
- 关于查询分析器及OLEDB,ODBC,DB-Library等问题
with t
as
(
select ID,grade1,grade2
from t004union allselect 0 as id,null as grade1,grade1 as grade2 --构造一个根节点
from T004
group by grade1
),tt --递归查询
as
(
select id,
grade1,
grade2,
0 as level
from t
where grade1 is nullunion allselect t.id,
t.grade1,
t.grade2,
level + 1 as level
from tt
inner join t
on tt.grade2 = t.grade1
)select ID,
grade2 as list,
level
from tt
order by 2,1,3