我有一张像这样的等级结构的桌子:
Create Table tbl1
(
AccountID NVARCHAR(100),
ID int,
ParentID int
);
INSERT INTO tbl1
VALUES ('11', 1, Null), ('12', 2, Null), ('13', 3, Null),
('11/11', 4, 1), ('11/12', 5, 1), ('11/111', 6, 1),
('11/11/001', 7, 4), ('11/11/002', 8, 4), ('12/111', 9, 2),
('12/112', 10, 2);如何在树结构中从tbl1中获取某些节点的所有子节点,按照如下所示的其他表(FilteringTbl):
AccountID
---------
11/11
12
13换句话说,我希望创建一个SQL查询,以便从Server 2008中的第一个表(tbl1)中获取节点11/11、12和13的所有子节点。主表有5000多个记录。(tbl1 5400记录和过滤tbl1 1500记录)
请帮帮我。谢谢。
发布于 2016-06-14 07:46:06
;with C
as (
select AccountID,
ID,
ParentID,
0 as [level]
from tbl1
where ID IN (SELECT ID FROM Filteringtbl)
union all
select I.AccountID,
I.ID,
I.ParentID,
C.[level] + 1 as [level]
from tbl1 as I
inner join C on
C.ID = I.ParentID
)
select *
from Chttps://stackoverflow.com/questions/37799594
复制相似问题