【发布时间】:2016-07-03 19:36:14
【问题描述】:
我有一个包含以下数据的表格:
ID ParentID Name
-----------------------
1 NULL OK1
2 1 OK2
3 2 OK3
5 4 BAD1
6 5 BAD2
所以我只需要使用那些链接到ParentID = NULL 的行或这些行的有效子行(即:OK3 是有效的,因为它链接到 OK2,它链接到 OK1,它链接到 NULL,它是有效的。)
但是 BAD1 和 BAD 2 无效,因为它们没有链接到与 NULL 链接的行。
我想出的最佳解决方案是过程+函数。并且函数被调用的次数与表中链接级别的最大数量一样多。
有人可以为此类任务提出更好的解决方案吗?
【问题讨论】:
-
我认为这需要递归查询来解决。
-
我支持 Tim 使用递归逻辑的想法,你可以实现一个 CTE 查询。看看这个technet.microsoft.com/en-us/library/ms186243(v=sql.105).aspx
标签: sql sql-server tree