美文网首页
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