表:tbltree:
字段: treename
1
101 '是1的子节点
10101'是1和101的子节点
102 '是1的子节点
10201'是1和102的子节点
2 '
201 '是2的子节点
20101'是2和201的子节点 如何select 出 treename的时候把1和101的子节点数量得出以上字段得值是举例,还有其它得值
字段: treename
1
101 '是1的子节点
10101'是1和101的子节点
102 '是1的子节点
10201'是1和102的子节点
2 '
201 '是2的子节点
20101'是2和201的子节点 如何select 出 treename的时候把1和101的子节点数量得出以上字段得值是举例,还有其它得值
(select count(*) from tbltree where treename like rtrim(a.treename)+'%')-1 as 子节点数
from tbltree a
where ...
/*
列出所有父接点的子接点,个数.
*/WITH MgrCTE(父接点, 深度)
AS
(
SELECT 父接点, 0
FROM 表
WHERE 父接点IS NOT NULL
UNION ALL
SELECT M.父接点, lvl + 1
FROM 表 AS M
JOIN MgrCTE AS E
ON E.父接点= M.子接点
WHERE M.父接点IS NOT NULL
)
SELECT 父接点, COUNT(*) AS cnt
FROM MgrCTE
GROUP BY 父接点