请教sql2005中的CTE递归用法
一个简单的树形结构 department 表有三列:id, name, parentid
如何使用CTE获得指定id的节点的所有子孙节点?我仿照联机丛书的说明写成以下这个样子,但是没能得到预想的结果。请高人指点!
----------------
WITH temp(ID, Name, parentID, Level)
AS
(
SELECT d.id, d.name, d.parentid, 0 AS Level
FROM department AS d
INNER JOIN department AS childD
ON d.id = childD.parentID
WHERE d.parentid IS NULL
UNION ALL
SELECT d.id, d.name, d.parentid, Level + 1
FROM department AS d
INNER JOIN department AS childD
ON d.id = childD.parentID
INNER JOIN temp AS t
ON d.parentID = t.id
)
SELECT ID, Name, parentID, Level FROM temp where id = xxx