--得到指定id及其下的所有id列表
declare @t table(id int,idm varchar(8000),level int)
declare @level int
set @level=1
insert @t select id,cast(id as varchar),@level from subject where id=1  --这里要查询的是id是1
while @@rowcount>0
begin
  set @level=@level+1
  insert @t select a.id,b.idm+','+cast(a.id as varchar),@level from subject a join @t b on a.ParentID=b.ID
where b.level=@level-1
end
select * from @t