摘要:
数据库设计中经常碰到父子节点的关系结构,经常需要找到某个节点的根,或者某个节点的所有子节点,一般做法都是在业务层做递归的方式实现,或者数据库存储过程实现。但其实SQLServer提供的CTE可以很好的简化我们的工作,非常方便的实现这一功能。例子:1.正向递归,找某个节点下的所有子节点with t as--如果CTE前面有语句,需要用分号隔断(selectId,ParentId,Namefrom WMS_OrgwhereId='2'union allselect r1.Id,r1.ParentId,r1.Namefrom WMS_Org r1 join t as r2 on r1 阅读全文