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表数据如下:
举个🌰: 以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
遍历结果如下: