为了账号安全,请及时绑定邮箱和手机立即绑定

MS SQL Server如何实现递归查询

标签:
MySQL SQL Server

刚才在论坛上看到网友一个要求。参考如下,Insus.NET分析一下,可以使用MS SQL Server的递归查询,得到结果。
https://img1.sycdn.imooc.com//5ae1701d000127b907380527.jpg


准备一张表:
https://img1.sycdn.imooc.com//5ae170250001b8c606160174.jpg


根据网友提供的数据,填充此表:
https://img1.sycdn.imooc.com//5ae1702e0001bef904630198.jpg

下面语法在SQL Server 2014之下运行正常:
https://img1.sycdn.imooc.com//5ae170370001ff4612430195.jpg
上面代码示例中,完整SQL代码:


WITH TempDeptment ([ID],[PID],[DeptName],[Conjunction]) AS
(
    SELECT [ID],[PID],[DeptName], CAST([DeptName] AS Nvarchar(1000)) FROM [dbo].[Deptment] WHERE [PID] = 0
    UNION ALL
    SELECT d.[ID], d.[PID], d.[DeptName], CAST(([Conjunction] + N'/' + d.[DeptName]) AS Nvarchar(1000))    FROM TempDeptment AS td,[dbo].[Deptment] AS d WHERE td.[ID] = d.[PID]
)
SELECT [ID], [Conjunction] FROM TempDeptment


运行结果:
https://img1.sycdn.imooc.com//5ae1703e0001569004440207.jpg

 

  Insus.NET以前也没有在SQL中实现过递归,现刚好有一个实例,算是练习了。

 

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消