美文网首页
Oracle 递归查询

Oracle 递归查询

作者: 胖胖的半山兄 | 来源:发表于2017-09-18 23:35 被阅读0次

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

相关文章

网友评论

      本文标题:Oracle 递归查询

      本文链接:https://www.haomeiwen.com/subject/fgyisxtx.html