SQL递归查询实例

发布时间:2020-06-11编辑:脚本学堂
分享一例sql递归查询代码,用于递归获取节点数据,介绍了sql递归查询的实现方法,有需要的朋友参考下。

sql递归查询语句,对于给定一个父结点, 取出存于表中的菜单的操作是比较容易的。
表结构:
 

复制代码 代码示例:
SQL> desc t_right
Name            Type          Nullable Default Comments                        
--------------- ------------- -------- ------- --------------------------------
RIGHT_ID        NUMBER(10)                     权限ID                          
RIGHT_NAME      VARCHAR2(24) Y         权限名称                        
RIGHT_TYPE      CHAR(1)                        权限类型 1:配置系统的权限 2 业务系统的权限 3报表系统
REMARK          VARCHAR2(120) Y           备注                            
CONTROL_TYPE    CHAR(1)       Y           控制类型 1菜单 2按键           
PARENT_RIGHT_ID NUMBER(10)    Y       父结点ID

递归查找父结点为303下的所有子结点:
 

复制代码 代码示例:
select * from t_right r
start with r.parent_right_id = 303 connect by prior r.right_id = r.parent_right_id ;

结果:
 

复制代码 代码示例:

SQL> select * from t_right r
2 start with r.parent_right_id = 303 connect by prior r.right_id = r.parent_right_id ;

   RIGHT_ID RIGHT_NAME       RIGHT_TYPE REMARK     CONTROL_TYPE PARENT_RIGHT_ID
----------- -----------------------   ----------------    -----------    ------------               -----------------------------
      30304 工时池统计分析       2                                       1                           303
      30305 施工单查询              2                                       1                           303
      30301 超时单                    2                                       1                          303
   3030101 施工单                    2                                      1                           30301
   3030102 任务单                    2                                      1                          30301
      30302 异常单                   2                                       1                         303
   3030201 任务单                   2                                      1                           30302
      30303 工时池查询              2                                     1                           303
      30306 任务单查询              2                                      1                           303

9 rows selected

SQL递归查询的几种实现方法
sql函数实现递归查询示例
sql递归查询代码(cte应用)
sql2005递归查询的例子
sql递归查询(with cte实现)
sql 递归查询的代码(图文)