【发布时间】:2015-09-10 05:14:06
【问题描述】:
我有一张如下表:
Id ParentID
1 99
2 9
3 1
4 2
5 4
6 3
我想要一个查询,为每个孩子提供最后一个祖先。
我的意思是想要的结果是
id Lastancestor
1 99
2 9
3 99
4 9
5 9
6 99
我有很多数据,所以我需要一些快速的东西。
谢谢。
【问题讨论】:
-
以及来自 SO 出色帮助的示例:stackoverflow.com/questions/22909692/…
-
是否有最大深度?
-
99?您是否有处理神灵的计划,或者只是为他们的(单)父母使用一个幻数? NULL 怎么样?还是零?或者,只是为了难,他们自己的Id?您是否进行过任何研究或尝试解决您的问题?这里的想法是人们帮助您解决问题,但 SO 不是代码编写服务。 -
@Xristos Epitropakis 您需要更改您的数据(我知道您可能无法这样做),但 T-SQL 中的 HIERARCHYID 数据类型是为这类事情设计的。如果您有兴趣,请阅读此内容msdn.microsoft.com/en-us/library/bb677213.aspx
标签: sql sql-server tsql recursive-query ancestor