with closure (obj_1, obj_2) as (
SELECT distinct t.obj_1, t.obj_2
FROM temp4 t
UNION ALL
SELECT c.obj_1, t.obj_2
FROM closure c, temp4 t
WHERE c.obj_2=t.obj_1)
SELECT * FROM closure
由於數據中有循環,有沒有一種方法可以在此語句中添加停止條件,所以如果行已經存在於閉包中,我希望它停止該行的遞歸。如何把遞歸sql的停止條件?
你需要保持跟蹤訪問的對象並使用該信息停止處理。 –
@GordonLinoff你可以參考一個例子或文件解釋這可能嗎?我完全不熟悉這一點,很高興看到我可以嘗試的東西。 – Nataly
。 。我已經在SQL Server中完成了這項工作,但不是在DB2中完成的。一個想法是將對象ID保留在一個字符串(和其他列)中,並檢查ID是否未被使用。 –