1. 知道父级查询父级下所有子集
表:
select * from table_name a start with a.ID=1 connect by prior id=P_ID;
id:1是一级 id:2 和 id:4 是 二级 id:3 是三级 id:5 是 四级
2. 根据子集信息查询所有的父级
select * from PHO_ENTITIES start with ENITY_TYPE_CODE = 'C01-01' connect by prior P_ID = id;
ENITY_TYPE_CODE = 'C01-01' 可以查询到唯一 一条数据 可以更换成其他字段;
3.查询父节点下所有的子节点
oracle 提供2个函数,(1)level 数据属于哪一个等级 (2)树的最末端的值或者这个数据没有子节点了
select a.*,LEVEL,connect_by_isleaf from PHO_ENTITIES a start with P_ID='0' connect by prior id=P_ID;
connect_by_isleaf 值为1 的是最末端;