Oracle中的递归:
类似树形结构表结构:
id name parentId
1 a 0
2 a-1 1
3 b 0
4 a-1-1 2
5 b-1 3
6 a-1-2 2
7 a-2 1
8 a-2-1 7
SELECT * FROM 表名 start with id = '叶子节点的值' connect by prior id = parentId ;
start with ……connect by 的用法, start with 后面所跟的就是就是递归的种子。
递归的种子也就是递归开始的地方 connect by 后面的"prior" 如果缺省:则只能查询到符合条件的起始行,并不进行递归查询;
connect by prior 后面所放的字段是有关系的,它指明了查询的方向。
PRIOR和START WITH关键字是可选项
PRIORY运算符必须放置在连接关系的两列中某一个的前面。对于节点间的父子关系,PRIOR运算符在一侧表示父节点,在另一侧表示子节点,从而确定查找树结构是的顺序是自顶向下还是自底向上。在连接关系中,除了可以使用列名外,还允许使用列表达式。START WITH 子句为可选项,用来标识哪个节点作为查找树型结构的根节点。若该子句被省略,则表示所有满足查询条件的行作为根节点。
更多Oracle相关信息见 专题页面