greenZ

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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 <> '青蛙';

 

posted on 2017-03-04 13:07  绿Z  阅读(310)  评论(0)    收藏  举报