sql server 2000/2005递归
/*
递归查询 塗聚文
---SQL Server 2005环境下的实现:
*/
--生成测试数据
create table Dept(ID int,ParentID int,msg varchar(20))
insert into Dept select 1,0,'d'
insert into Dept select 2,1,'s'
insert into Dept select 3,1,'nl'
insert into Dept select 4,2,'d'
insert into Dept select 5,3,'s'
insert into Dept select 6,5,'f'
insert into Dept select 7,6,'d'
go
select * from Dept
Declare @Id Int
Set @Id = 1; ---在此修改父节点
With RootNodeCTE(Id,ParentID,msg)
As
(
Select ID,ParentID,msg From Dept
Where ParentID In (@Id)
Union All
Select Dept.ID,Dept.ParentID,Dept.msg From RootNodeCTE
Inner Join Dept
On RootNodeCTE.Id = Dept.ParentID
)
Select * From RootNodeCTE
---SQL Server 2000环境下的实现:
--生成测试数据 塗聚文 Geovin Du
create table Dept(ID int,ParentID int,msg varchar(20))
insert into Dept select 1,0,'d'
insert into Dept select 2,1,'s'
insert into Dept select 3,1,'nl'
insert into Dept select 4,2,'d'
insert into Dept select 5,3,'s'
insert into Dept select 6,5,'f'
insert into Dept select 7,6,'d'
go
select * from Dept
--创建用户定义函数
Create function [dbo].[GetChild](@ID varchar(10))
returns @t table(ID varchar(10),ParentID varchar(10),msg varchar(20),Level int)
as
begin
declare @i int
set @i = 1
insert into @t select @ID,@ID,null,0 --当前级,本级,如果不要的话可以注释掉或再加个参数来选择操作
insert into @t select ID,ParentID,msg,@i from Dept where ParentID = @ID
while @@rowcount<>0
begin
set @i = @i + 1
insert into @t
select
a.ID,a.ParentID,a.msg,@i
from
Dept a,@t b
where
a.ParentID=b.ID and b.Level = @i-1
end
return
end
--执行查询
select ID from dbo.GetChild(2)
go
--删除测试数据
drop function GetChild
drop table Dept
最新文章
- Android数据存储-通过SharedPreferences实现记住密码的操作
- C语言样式的文件操作函数
- ODAC(V9.5.15) 学习笔记(十六)直接访问模式
- Nginx Google 扩展
- ORACLE R12 MOAC
- 【暑假】[数学]UVa 10375 Choose and divide
- Php AES加密、解密与Java互操作的问题
- EF项目中应用出现问题???
- android怎样查看当前project哪些profile是打开的
- profile与bashrc
- sendemail 发送成功Email was sent successfully!邮箱却收不到邮件
- memcached subList序列化问题
- vuex的一些学习
- 微服务架构:Eureka参数配置项详解
- 【转】JSF中的三大核心组件 UI标签的详细介绍和使用举例
- UBANTU zongjie
- java基础(三) -基本数据类型
- vue-layer
- linux 查看、关闭 ssh pts/n登录的用户
- mac下phpstrom安装主题和主题推荐