T-SQL查詢:WITH AS 遞歸計算某部門的所有上級機構或下級機構
阿新 • • 發佈:2018-07-17
area t-sql union sel lec where 需要 _id with as
drop table #Area; CREATE TABLE #Area ( id INT NOT NULL, city_name NVARCHAR(100) NOT NULL, parent_id INT NOT NULL ) INSERT INTo #Area(id,city_name,parent_id) VALUES(1,‘江蘇省‘,0) INSERT INTo #Area(id,city_name,parent_id) VALUES(2,‘常州市‘,1) INSERT INTo #Area(id,city_name,parent_id) VALUES(3,‘天寧區‘,2) INSERT INTo #Area(id,city_name,parent_id) VALUES(4,‘新北區‘,2) INSERT INTo #Area(id,city_name,parent_id) VALUES(5,‘天寧區_1‘,3) INSERT INTo #Area(id,city_name,parent_id) VALUES(6,‘新北區_1‘,4) ------------------------------------------------- --根據節點ID獲取所有子節點 ------------------------------------------------- SELECT * FROM #Area; WITH AreaTree AS ( SELECT * from #Area where id = 1--需要查找的節點 UNION ALL SELECT #Area.* from AreaTree JOIN #Area on AreaTree.id = #Area.parent_id ) SELECT * FROM AreaTree; ------------------------------------------------- --根據節點ID獲取所有父節點 ------------------------------------------------- SELECT * FROM #Area; with AreaTree AS ( SELECT * from #Area where Id=6 --需要查找的節點 UNION ALL SELECT #Area.* from AreaTree JOIN #Area on AreaTree.parent_id= #Area.Id ) SELECT * from AreaTree;
T-SQL查詢:WITH AS 遞歸計算某部門的所有上級機構或下級機構