经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库运维 » MS SQL Server » 查看文章
mssql sqlserver with cte表达式(递归)找出最顶值的方法分享
来源:cnblogs  作者:Adeal2008  时间:2018/11/9 11:10:08  对本文有异议

摘要: 下文通过递归的方式找出最顶级部门的方法分享,如下所示: 实验环境:sql server 2008 R2


下文通过cte-with表达式实现递归,获取一个公司的顶级部门,如下所示 例:部门表

  1. create table [maomao365.com]
  2. (keyId int ,parentId int,
  3. deptName nvarchar(30))
  4. insert into [maomao365.com]
  5. (keyId,parentId,deptName)
  6. values
  7. (1,0,'总经办'),
  8. (2,0,'IT中心'),
  9. (10,1,'销售部'),
  10. (11,1,'售后部'),
  11. (111,11,'售后1'),
  12. (1111,111,'售后1_1'),
  13. (12,1,'市场部'),
  14. (21,2,'运维部'),
  15. (22,2,'开发部')
  16. ---例1:获取 售后部keyId=1111所在的顶级部门
  17. ;
  18. with testA( [keyId], [parentid],deptName)
  19. as
  20. (
  21. select keyId, parentid,deptName
  22. from [maomao365.com]
  23. where keyId = 1111
  24. union all
  25. select a.keyId, a.parentid,a.deptName
  26. from [maomao365.com] a
  27. inner join testA on a.[keyId] = testA.[parentId] --递归
  28. )
  29. select * from testA where parentId=0;
  30. go
  31.  
  32. truncate table [maomao365.com]
  33. drop table [maomao365.com]

 



  1. 转自:http://www.maomao365.com/?p=7829
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号