sql server2005後版本中,with遞歸做子查詢這樣的想法恐怕是在很多在寫SQL語句中都想實現的是個功能,但是由於with 語句的特殊性,不能做爲子查詢,由此,我們只能採用其他的方式去突破,在數據庫中有函數這個東西,因此可以把WITH的這個查詢寫成一函數,在需要的時候去進行調用函數即可。
示例:
with temptable(PID,ID,Name)
as
(
select PID,ID,Name from Table_A where Id=@ID
union all
select Table_A.PID,Table_A.ID,Table_A.Name from Table_A, temptable where tableA.PID=temptable.ID
)select * from temptable