假设我有一个包含3列的表格:
现在,我应该如何计算Root有多少个孩子?
答案 0 :(得分:3)
SELECT COUNT(*)
FROM T
WHERE ParentID = @ParentID
如果你想要后代不仅仅是直接的孩子,你需要一个递归的CTE。
;WITH R AS
(
SELECT ID
FROM T
WHERE ParentID = @RootID
UNION ALL
SELECT T.ID
FROM T
JOIN R ON R.ID = T.ParentID
)
SELECT COUNT(*)
FROM R