-- with 一个临时表(括号里包括的是你要查询的列名)
with tem_table(dept_id,parent_id,dept_name,curlevel,havechild)
as
(
--1,初始查询(这里的parent_id='000'是我门数据中最底层的根节点)
select dept_id, parent_id, dept_name, 1 as level,1 as havechild
from
sys_dept
where
parent_id = 0
union all
--2,递归条件
select a.dept_id, a.parent_id, a.dept_name, b.curlevel+1,
havechild =(
case
when exists(select 1 from sys_dept where sys_dept.parent_id = a.dept_id ) then 1
else 0
end
)
from
sys_dept a
inner join
tem_table b
on (a.parent_id = b.dept_id)
)
select * from tem_table;
查找父子节点,在一张表中– with 一个临时表(括号里包括的是你要查询的列名)with tem_table(dept_id,parent_id,dept_name,curlevel,havechild)as(–1,初始查询(这里的parent_id='000’是我门数据中最底层的根节点)select dept_id, parent_id, dept_name, 1 as lev...