我有一個分類表,其中層次結構由id,parentid(即一個類別的ID作爲另一個類別的parentid,然後它是該元素的子項)維護。我想遞歸地從一個孩子到直接父母,並檢查列中的一個說FooterAdId爲空或不。如果null向上並繼續檢查,則返回FooterAdId。我可以用一個CTE遞歸查詢來獲取頂級父,但我感到困惑如何適用條件上面描述的場景...SQL查詢以獲得滿足條件的直接父項
這裏我有ID 6在我的手,結果我想要如上所述將是101.
我有一個分類表,其中層次結構由id,parentid(即一個類別的ID作爲另一個類別的parentid,然後它是該元素的子項)維護。我想遞歸地從一個孩子到直接父母,並檢查列中的一個說FooterAdId爲空或不。如果null向上並繼續檢查,則返回FooterAdId。我可以用一個CTE遞歸查詢來獲取頂級父,但我感到困惑如何適用條件上面描述的場景...SQL查詢以獲得滿足條件的直接父項
這裏我有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
試試這個,
Declare @t table (id int,parentid int,footerid int)
insert into @t values(1,null,null),(2,null,100),(3,1,101),(4,3,null),(5,4,null),(6,5,null)
;with CTE as
(
select * from @t where id=6
union all
select a.* from @t a inner join cte b on a.id=b.parentid and b.footerid is null
)
select * from cte
樣品輸入與輸出的需要!有助於 ! –
請不要讓您的標題全部大寫。 –
@ vijaykumar-hadalgi用示例數據和所需輸出更新問題。 – Sree