摘要: 下文通过递归的方式找出最顶级部门的方法分享,如下所示: 实验环境: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]
需要了解更多数据库技术:mssql sqlserver with cte表达式(递归)找出最顶值的方法分享,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!
转自:https://www.maomao365.com/?p=7829
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/dtteaching/624913.html