我想讓簡單的SQL Server 2008遞歸查詢工作。SQL遞歸查詢只返回最後一行
下面這些例子: http://msdn.microsoft.com/en-us/library/ms186243.aspx 和 SQL Server recursive query
我有一個表,通過ID和的parentID:
ID fParent fName
2 NULL root
3 2 Drug_Error
4 2 Incident
5 4 2007
6 4 2009
7 5 2007-1
8 7 2008-2
用下面的查詢
with recury as (
Select
fs1.ID ,fs1.FParent,fs1.FName
from FoldersStructure as fs1
where fs1.FParent =null
union all
select fs2.id,fs2.FParent,fs2.FName
from FoldersStructure as fs2
inner join recury as r on fs2.FParent= r.ID
)
select ID,FParent,FName
from recury
where ID=8
我希望得到:
2 null root
4 2 incident
5 4 2007
7 5 2007-1
8 7 2007-2
但我只得到最後一個。 在此先感謝。
你試過忽略你的Where子句?它具體說你只會得到最後一行。 – 2013-04-29 15:46:41
@DaveJohnson,如果我刪除ID = 8的地方,我會得到表中的每一行。 – Lambda 2013-04-29 16:00:11
在CTE中選擇的列的名稱與示例表中列的名稱不匹配! – 2013-04-29 16:18:43