查找单表链中的最后一条记录 (SQL Server)
在 SQL Server 2005 中得到了这张表,它用于维护合并操作的历史记录:
- Column FROM_ID (int)
- Column TO_ID (int)
现在我需要一个查询,该查询将原始 FROM_ID 作为输入,并返回最后一个可用的 TO_ID。
例如:
- ID 1 合并到 ID 2
- 稍后,ID 2 合并到 ID 3
- 再一次,ID 3 合并到 ID 4
所以我试图组合在一起的查询将作为输入(在 WHERE 子句中)我推测)ID 1,并且应该给我最后一个可用的 TO_ID 作为结果,在本例中为 4。
我想我需要一些递归逻辑,但真的不知道如何开始。
谢谢 !
马蒂厄
Got this table in SQL Server 2005, which is used to maintain a history of merging operations:
- Column FROM_ID (int)
- Column TO_ID (int)
Now I need a query that takes the original FROM_ID as input, and returns the last available TO_ID.
So for instance:
- ID 1 is merged to ID 2
- Later on, ID 2 is merged to ID 3
- Again later, ID 3 is merged to ID 4
So the query I'm trying to put together will take as input (in the WHERE clause I presume) ID 1, and should give me the last available TO_ID as a result, in this case 4.
I suppose I need some recursion logic, but don't really know how to start.
Thanks !
Mathieu
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 CTE 可以。
测试脚本
SQL语句
Using a CTE would work.
Testscript
SQL Statement
如果这对你有用,请给 Lieven 接受的答案,因为它是基于他的代码。
If this works for you give Lieven the accepted answer as it is based on his code.