27,579
社区成员
发帖
与我相关
我的任务
分享
SELECT *
INTO #T
FROM class
WHERE id=123
WHILE (@@ROWCOUNT<>0)
BEGIN
INSERT INTO #T
SELECT c.*
FROM class c
JOIN #T t1 ON t1.id = c.upperid
WHERE NOT EXISTS (SELECT *
FROM #T t2
WHERE t2.id = c.id)
END
--全体叶节点
SELECT *
FROM #T
WHERE NOT EXISTS (SELECT *
FROM #T t0
WHERE t0.upperid = #T.id)
SQL2000,建临时表,用循环写入..
;with f as
(
select * from class where id='xx'
union all
select a.* from class as a join f as b on a.id=b.upperid)
select * from f