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
posted @ 2015-06-15 09:05    阅读(1409)  评论(0编辑  收藏  举报