我下表在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