看这个例子:
从第一级开放层次结构开始,定义级别和叶或父级。如果您的客户级别 = 3 和父级,则找到他
with tbl as (
select '12' id, null parent_id, 'main customer' status from dual
union all
select '13' id, null parent_id, 'main customer' status from dual
union all
select '131' id, 13 parent_id, 'main customer' status from dual
union all
select '121' id, 12 parent_id, 'main customer' status from dual
union all
select '1211' id, 121 parent_id, 'main customer' status from dual
union all
select '1212' id, 121 parent_id, 'main customer' status from dual
union all
select '12111' id, 1211 parent_id, 'main customer' status from dual
union all
select '12121' id, 1212 parent_id, 'main customer' status from dual)
select * from
(select tbl.*, level lvl, connect_by_isleaf leaf
from tbl
start with tbl.parent_id is null
connect by prior id = parent_id) b
where b.lvl = 3
AND b.status = 'main customer'
AND b.leaf = 0
输出:
1211 121 main customer 3 0
1212 121 main customer 3 0