我下表在SQL:河網查詢
RiverID | RiverName | RecipientID
------------------------------------
0 | Atlantic Ocean | NULL
1 | Mississippi | 0
2 | Missouri | 1
3 | Yellowstone | 2
4 | Bighorn | 3
5 | Wind | 3
RecipientID我的表中的意思是:如果它是NULL,則錶行表示海洋或閉合流域。如果RecipientID不爲NULL,那麼它就是一條河流,它將下游的另一條河流連接起來。
現在我想提出一個問題:給定一條河流,找到下游的所有河流,直到你到達海洋。例如:給定河「風」(RiverID = 5)查詢結果將顯示:
Wind - Yellowstone - Missouri - Mississippi - Atlantic Ocean.
我怎樣寫在SQL這個查詢?
序列中河流的最大數量是多少?你使用的是什麼數據庫? –
它是否必須是純SQL?你可以使用TSQL/PLSQL(取決於哪個數據庫,正如Gordon所問)?如果你可以使用額外的編程語言,它可能會使問題變得更容易。 – CompuChip
說實話,我會在這裏使用'CURSOR',因爲你不知道你需要多少次迭代。在我看來,它也會更具可讀性。 – XN16