create table code_catalog_structure(catalogid nvarchar(10),col varchar(10),parentid nvarchar(10))
insert into code_catalog_structure select '我是一层的一','aaa','*ROOT*'
insert into code_catalog_structure select '我是一层的二','bbb','*ROOT*'
insert into code_catalog_structure select '我是二层的一','ccc','我是一层的一'
insert into code_catalog_structure select '我是二层的二','ddd','我是一层的二'
insert into code_catalog_structure select '我是三层的一','eee','我是二层的一'
insert into code_catalog_structure select '我是三层的二','fff','我是二层的二'
insert into code_catalog_structure select '我是三层的三','ggg','我是二层的二'
go
;with father as
(
select *,lev=0,seq=CAST(catalogid AS VARBINARY) from code_catalog_structure where parentid = '*ROOT*'
union all
select a.*,lev=lev+1,seq=CAST(seq+CAST(a.catalogid AS VARBINARY) AS VARBINARY) from code_catalog_structure a join father b on a.parentid = b.catalogid
)
select parentid,catalogid,lev,seq from father order by seq
/*
parentid catalogid lev
---------- ---------- -----------
*ROOT* 我是一层的一 0
我是一层的一 我是二层的一 1
我是二层的一 我是三层的一 2
*ROOT* 我是一层的二 0
我是一层的二 我是二层的二 1
我是二层的二 我是三层的二 2
我是二层的二 我是三层的三 2
(7 行受影响)
*/
go
drop table code_catalog_structure
SQL2005递归查询语法
最新推荐文章于 2024-11-21 15:00:08 发布
本文介绍了一个使用SQL创建层级结构表的方法,并通过递归查询来展示多层次的数据关系。具体包括表结构定义、数据插入及层级查询。
1057

被折叠的 条评论
为什么被折叠?



