0
我想找到DAG的拓撲排序。我們可以將一個遞歸查詢的輸出用於另一個遞歸查詢嗎?
create table topo(
v1 int,
v2 int
);
Insert into topo values (1,3),(2,5),(3,4),(4,5),(4,6),(5,7),(6,5),(7,null)
WITH RECURSIVE path(S,d) AS(
select t1.v1, 0 from topo t1 left outer join topo as t2 on t1.v1=t2.v2
where t2.v2 IS null
UNION ALL
select distinct t1.v2, path.d + 1 from path inner join topo as t1 on
t1.v1=path.S
)
select S from path group by S order by MAX(d);
此代碼給出了一個圖的拓撲次序的輸出。現在我想將這個輸出用於另一個遞歸查詢來查找從一個頂點到另一個頂點的路徑。
我可以使用此代碼生成的輸出到另一個遞歸查詢。我試圖以正常的方式做到這一點,但輸出顯示錯誤。
您可以通過向現有的遞歸CTE添加一個新字段來獲得該路徑嗎? – JNevill
如何?假設我想要從3到7的路徑。這可能沒有寫另一個遞歸查詢? – user3503711