Oracle递归

1.向下递归获取子节点

--根据二级获取下方的四五级节点
select * from table_name where level in('4','5')
start with id='二级节点ID'
connect by prior id=parent_id
--level:节点级别字段
--start with后定义根节点的位置
--connect by prior 本条ID等于下一条数据的parent_id

2.向上递归获取父节点

--根据四级或五级节点获取对应的二级节点
select * from table_name where level='2'
start with id='四级节点的ID'
connect by prior parent_id=id
--本条parent_id等于下一条数据的id

3.注意

--connect by prior 后关联字段写反或错误将导致拿不到预期结果
--在sql中写逻辑是尽量要避免的,递归相对正常逻辑消耗资源会多一点,所以要避免此处全表扫描

发表评论

电子邮件地址不会被公开。 必填项已用*标注

4 × 4 =