Oracle 递归查询

Oracle中的递归查询 主要是通过start with connect by prior语句实现对树结构的遍历。其遍历方式 使用了常见的中序遍历。

先构造一个比较直观的 临时表T

WITH T AS
  (SELECT A.MODEL_ID, A.SUB_MODEL_ID FROM CC_DOMAIN_MODEL_REL A)
 SELECT *
   FROM T

T表数据如下:


table T

举个🌰: 以MODEL_ID = 10000作为根节点 进行遍历

 SELECT *
   FROM T
  START WITH T.MODEL_ID = 10000
 CONNECT BY PRIOR T.SUB_MODEL_ID = T.MODEL_ID

遍历结果如下:


正常写法

如果不设置Start With,那么将遍历所有的节点

 SELECT *
   FROM T
--  START WITH T.MODEL_ID = 10000
 CONNECT BY PRIOR T.SUB_MODEL_ID = T.MODEL_ID

遍历结果如下:


不设置Start With
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容