SQL Connect By 的例子

看到一个较为通俗易懂的connect by的例子,是百度知道的答案,稍微整理了一下。我自己这样理解:connect by prior "id" = "p_id" ,是指查询结果中的子节点(有可能是原树的父节点)用 "p_id" 作为key,来和本记录的 "id" field 作链接。
树的结构如下:
         0
         |
      |      |
     1      3
      |
   |     |      
   2    4 
   |
   5

> select * from a start with id=1 connect by prior id = pid;
从1向叶节点遍历.1的子节点是2和4,而2的子节点是5.所以结果是
id      name      pid
1      10           0
2      11           1
5      121         2
4      12           1
注意5排在2的后面。

> select * from a start with id=5 connect by prior pid = id
从5向根节点遍历,5的父节点是2,2的父节点是1
这个语句查出来的结果应该是这样的

ID   NAME   PID
5    121       2
2    11         1
1    10         0
-- ===================================== 原创 =====================================
> select * from a start with id=1 connect by prior id+1 = id
从1向叶节点遍历,(1+1) 的叶节点是2
这个语句查出来的结果应该是这样的

ID   NAME   PID
1    10         0
2    11         1
3    20         0
4    12         1
5    121       2

原文地址:https://www.cnblogs.com/pekkle/p/6568828.html