Sql Server中不支持Connect by子句进行递归查询,不过可以通过使用with子句来实现递归查询。
下面来看下with子句的用法
with temp as
(
Select fid,fnumber,fname,fmanagerId
from t_person
where fmanagerId is not null
)
Select fid,fnumber,fname,fmanagerId from temp
看下运行结果
该语句将temp当做临时表,将数据暂时保存在里面。
下面看一下SQL语句使用嵌套定义的子查询temp来实现递归查询
With temp (fid,fnumber,fname,fmanagerid) as
(
Select t.fid,t.fnumber,t.fname,t.fmanagerid from T_person t where t.fid=’00001’
Union all
select c.fid,c.fnumber,c.fname,c.fmanagerid from temp p,T_Person c
w