在下面的代码中,我使用SQL Server2005中的递归CTE(公用表表达式)来尝试查找基本分层结构的顶级父级。此层次结构的规则是每个CustID都有一个ParentID,如果CustID没有父级,则ParentID = CustID,它是最高级别。中生成的最后一条记录(最高级别的CustID)?还要注意,在这个表中有多个不相关的CustID层次结构,所以我不能只执行SELECT * FROM t
对于这个递归的CTE,我有一个小问题,它工作得很好,除非我有一个没有根可读性权限的用户,这意味着这个元素没有条目。因此,如果我在树内的叶子上有权限的用户上运行此查询,则该查询的级别部分将无法正常工作。 JOIN UserTable AS ut ON ut.id = t.user_id AND ut.user_id = '141F-4BC6-8934'
ORDER BY
我想我不太理解递归查询。我看到的典型递归查询是经理和雇员递归查询。我使用这个查询来捕获整个层次结构,但是我想要进行一个查询,使我能够捕获所有父级、子级和他们的级别(相对于顶层)。我觉得我需要递归查询吗?JOIN tree t ON p.manager_id = t.employee_idSELECT * tree;
所以现在,既然我得到了最高级别的老板但是,如果我在最后一