Oracle 递归查询

2017-09-18  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读