recursion-使用递归获取.Net中父文件夹的序列
我有一个具有以下结构的表
ID Name Parent
----------- -------------------------------------------------- -----------
1 Root NULL
2 Root_A 1
3 Root_B 1
4 Root_C 1
5 Root_C_A 4
6 Root_C_A_A 5
7 Root_C_A_A_A 6
因此,如果我传递7
,我想得到以下结果
Root --> Root_C --> Root_C_A --> Root_C_A_A
这意味着我想从子项遍历回根。如何使用 SQL Server 2008 存储过程或其他 .Net 技术来完成此操作?
我想我可以使用递归函数完成任务
I have a table with the following structure
ID Name Parent
----------- -------------------------------------------------- -----------
1 Root NULL
2 Root_A 1
3 Root_B 1
4 Root_C 1
5 Root_C_A 4
6 Root_C_A_A 5
7 Root_C_A_A_A 6
So if I pass 7
, I would like to get the following
Root --> Root_C --> Root_C_A --> Root_C_A_A
That means I want to traverse back to root from a child. How can I do it using SQL Server 2008 Stored Procedures or with other .Net techniques ?
I think I can accomplish the task using recursive function
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用公用表表达式在 Sql Server 2005+ 中实现递归。 CTE 允许您加入自身以进行递归。 CTE 继续递归,直到没有行返回,因此您需要确保可靠地满足该结束条件。
You can implement recursion in Sql Server 2005+ using a common table expression. CTEs let you join to themselves in order to recurse. The CTE continues to recurse until no rows are returned, so you'll want to ensure you reliably meet that end condition.
试试这个:
try this: