我有一个类别表,其中层次结构由 id、parentid 维护(即,一个类别的 ID 作为另一个类别的 parentid,然后它是该元素的子元素)。我想递归地从一个 child 上升到直接 parent ,并检查其中一个列说 FooterAdId 是否为空。如果为 null 则向上继续检查,否则返回 FooterAdId。我能够通过 cte 递归查询获得顶级父级,但对我如何将条件应用于上述场景感到困惑......
这里我手上有 id 6,我想要的结果如上所述将是 101。
最佳答案
使用您的 CTE 并在 AS RowNum
中包含一个 ROW_NUMBER()
列。然后,根据你做的CTE
WITH MyCte AS
...
SELECT TOP 1 footeradid
FROM MyCte
WHERE footeradid IS NOT NULL
ORDER BY RowNum
关于SQL查询以获得满足条件的直接父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22139188/