with find (id,name,parent_id) as
(
select id,name,parent_id from dbo.ar_cp_school where id=20
union all
select a.id,a.name,a.parent_id from ar_cp_school a inner join find b on a.parent_id=b.id
)
(
select id,name,parent_id from dbo.ar_cp_school where id=20
union all
select a.id,a.name,a.parent_id from ar_cp_school a inner join find b on a.parent_id=b.id
)
select *from find;