文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>关于T-SQL递归查询的(转)

关于T-SQL递归查询的(转)

时间:2011-04-28  来源:日里仙人

提问:

id mc parent
1 机械 -1
2 化工机械 1
3 反应器 2

相得到   
id mc parent rj
1 机械 -1 机械
2 化工机械 1 机械\化工机械
3 反应器 2 机械\化工机械反应器


关键是树结构的层次不确定,不知道有多少级

解答:

use InsideTSQL2008;
go

if OBJECT_ID('dbo.Test_tab') is not null
drop table dbo.Test_tab;
create table dbo.Test_tab
(
id
int primary key,
mc
nvarchar(100) not null,
parentid
int not null
);

insert into dbo.Test_tab(id,mc,parentid)values(1,'机械',0);
insert into dbo.Test_tab(id,mc,parentid)values(2,'化工机械',1);
insert into dbo.Test_tab(id,mc,parentid)values(3,'反应器',2);
insert into dbo.Test_tab(id,mc,parentid)values(4,'化工反应器',3);
insert into dbo.Test_tab(id,mc,parentid)values(5,'石油化工反应器',4);
insert into dbo.Test_tab(id,mc,parentid)values(6,'采油机械',1);
insert into dbo.Test_tab(id,mc,parentid)values(7,'',2);

with cte as
(
select t.id,t.parentid,0 as levels,CONVERT(nvarchar(1000),t.mc) as mc from dbo.Test_tab as t
where t.id = 1
union all
select ttt.id,ttt.parentid,tt.levels+1,convert(nvarchar(1000),tt.mc+'\'+ttt.mc) from cte as tt
inner join dbo.Test_tab ttt on ttt.parentid = tt.id
)
select * from cte
 
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载