SQL2005递归查询语法

本文介绍了一个使用SQL创建层级结构表的方法,并通过递归查询来展示多层次的数据关系。具体包括表结构定义、数据插入及层级查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值