Oracle SQL递归查询
oracle 递归
1. connect by <不带prior关键字的条件语句> 与 connect by <带prior关键字的条件语句>
<不带prior关键字的条件语句>:只查询level为1的行,不做递归
<带prior关键字的条件语句>:做递归
2. prior放的左右位置决定了检索是 自底向上还是自顶向下。
子编码 = prior 父编码 :自底向上
prior 子编码 = 父编码 :自顶向下
3. 逻辑删除节点
3.1 逻辑删除 查找节点
select t.*,level from t_catalog t
start with t.cid <> 'C01'
connect by t.cid = prior t.pcid;
3.2 逻辑删除 被查找节点
select t.*,level from t_catalog t
start with t.pcid = 'C00'
connect by prior t.cid = t.pcid and t.cname <> '青蛙';
浙公网安备 33010602011771号