我有一个类别表,其中的层次结构由id,parentid(即一个类别的ID作为另一类别的父母ID维护,那么它是该元素的子代)。我想递归地从孩子上升到直接父母,并检查其中一列说FooterAdId是否为null。如果为null,请继续检查,否则返回FooterAdId。我可以通过cte递归查询获取顶级父项,但对如何将条件应用于上述情况感到困惑...



在这里,我手上有id 6,如上所述,我想要的结果是101。

最佳答案

使用您的CTE,并在ROW_NUMBER()中包含AS RowNum列。然后,根据CTE

WITH MyCte AS
   ...
SELECT TOP 1 footeradid
FROM MyCte
WHERE footeradid IS NOT NULL
ORDER BY RowNum

关于sql - SQL查询以获取满足条件的直接父级,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22139188/

10-17 03:08