SqlServer_合并多个递归查询数据(CTE)
该方法在数据量过大时,效率过低,可参考hierarchyid字段实现(Sqlserver 2008)
优点:效率较高
缺点:需要不断维护数据,对现有业务有一定影响
参考:http://www.cnblogs.com/luminji/p/4403569.html
--cteChildren 子孙信息
--cteParents 父亲信息
with cteChildren(EmpID,ParentID)
AS
(
select EmpID,ParentID from Persons where parentid = 10171
union all
select t.EmpID,t.parentid from Persons as t
inner join cteChildren as c on t.ParentID = c.Id
),
cteParents(EmpID,ParentID)
AS
(
select EmpID,ParentID from Persons where Id= 10172
union all
select t.EmpID,t.parentid from Persons as t
inner join cteParents as c on t.Id= c.ParentID
)
--合并查询
select Idfrom cteChildren
UNION
select Idfrom cteParents