mssql sqlserver with cte表达式(递归)找出最顶值的方法分享
程序员文章站
2022-03-26 14:06:33
摘要: 下文通过递归的方式找出最*部门的方法分享,如下所示: 实验环境:sql server 2008 R2 下文通过cte-with表达式实现递归,获取一个公司的*部门,如下所示 例:部门表 ......
摘要: 下文通过递归的方式找出最*部门的方法分享,如下所示: 实验环境:sql server 2008 r2
下文通过cte-with表达式实现递归,获取一个公司的*部门,如下所示 例:部门表
create table [maomao365.com] (keyid int ,parentid int, deptname nvarchar(30)) insert into [maomao365.com] (keyid,parentid,deptname) values (1,0,'总经办'), (2,0,'it中心'), (10,1,'销售部'), (11,1,'售后部'), (111,11,'售后1'), (1111,111,'售后1_1'), (12,1,'市场部'), (21,2,'运维部'), (22,2,'开发部') ---例1:获取 售后部keyid=1111所在的*部门 ; with testa( [keyid], [parentid],deptname) as ( select keyid, parentid,deptname from [maomao365.com] where keyid = 1111 union all select a.keyid, a.parentid,a.deptname from [maomao365.com] a inner join testa on a.[keyid] = testa.[parentid] --递归 ) select * from testa where parentid=0; go truncate table [maomao365.com] drop table [maomao365.com]
转自:http://www.maomao365.com/?p=7829