首页 > 代码库 > sql中的递归
sql中的递归
开发的时候有个需求,就是根据前台选择的编码,然后查找该节点下所有的结果集,后来百度了一下 sql中 也有递归,
先看下结果
with tmps as
(
select * from dbo.t_ew_dutyRelation where parentCode = ‘parent2‘
union all
SELECT d2.* from tmps
inner join t_ew_dutyRelation d2 on tmps.dutyCode = d2.parentCode
)
SELECT * FROM tmps
简单解释一下:
with as属于sql server新特性CTE(Common Table Expression)的关键字,用来储存临时结果集。常用于代替子查询。
上面demo中可以理解为,找出父节点为“parent2”的记录后,存放在临时表tmps 中,然后临时表和t_ew_dutyRelation进行内连接,找出它的子记录。子记录和第一条记录union后作为tmps 新的结果集继续进行内连接,找出新的子记录。
大家如果有什么更好的方法,可以说出来,共同学习!
sql中的递归
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。