用标准sql的with实现
递归查询(sql2005以上肯定支持,sql2000不清楚是否支持):
with subqry(id,name,pid) as (
select id,name,pid
from test1
where id = 5 --指定id
union all
select test1.id,test1.name,test1.pid
from test1,subqry
where test1.pid = subqry.id
)
select*
from subqry;