在SQL中计算根的子节点

时间:2011-10-01 07:09:51

标签: sql sql-server

假设我有一个包含3列的表格:

  1. 商品ID'ID'
  2. 父ID“ParentID”
  3. 项目名称'标题'
  4. 现在,我应该如何计算Root有多少个孩子?

1 个答案:

答案 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