Oracle递归查询
2017-06-07 00:00
656 查看
Oracle中的递归查询语句为start with .... connect by prior,为中序遍历算法。
基本语法是:
select * from tablename
start with 条件1
connect by 条件2
where 条件3
条件1: 是根结点的限定语句,当然可以放宽限定条件,以遍历多个根结点,实际就是多棵树。
条件2:是连接条件,其中用PRIOR表示上一条记录。
比如connect by prior id = parent_id就是说上一条记录的Id 是本条记录的Parent_Id。
条件3:过滤返回的结果集。
PRIOR关键字
运算符PRIOR被放置于等号前后的位置,决定着查询时的检索顺序。
PRIOR被置于CONNECT BY子句中等号的前面时,则强制从根节点到叶节点的顺序检索,为自顶向下查找。
如:connect by prior id = parent_id
PIROR运算符被置于CONNECT BY 子句中等号的后面时,则强制从叶节点到根节点的顺序检索,为自底向上的查找。
如:connect by id = prior parent_id
PS:当CONNECT BY后指定多个连接条件时,每个条件都应指定prior关键字
基本语法是:
select * from tablename
start with 条件1
connect by 条件2
where 条件3
条件1: 是根结点的限定语句,当然可以放宽限定条件,以遍历多个根结点,实际就是多棵树。
条件2:是连接条件,其中用PRIOR表示上一条记录。
比如connect by prior id = parent_id就是说上一条记录的Id 是本条记录的Parent_Id。
条件3:过滤返回的结果集。
PRIOR关键字
运算符PRIOR被放置于等号前后的位置,决定着查询时的检索顺序。
PRIOR被置于CONNECT BY子句中等号的前面时,则强制从根节点到叶节点的顺序检索,为自顶向下查找。
如:connect by prior id = parent_id
PIROR运算符被置于CONNECT BY 子句中等号的后面时,则强制从叶节点到根节点的顺序检索,为自底向上的查找。
如:connect by id = prior parent_id
PS:当CONNECT BY后指定多个连接条件时,每个条件都应指定prior关键字
相关文章推荐
- oracle之树状结构的存储与展示(递归查询)
- Oracle中的递归查询
- ORACLE递归查询
- oracle 中 Start with...connect by 的用法(递归查询)
- Oracle:递归查询(树形结构数据)
- oracle 递归查询学习
- oracle 使用 START WITH…CONNECT BY PRIOR 实现递归查询
- Oracle 的树形递归查询 Start With Connect BY
- Oracle递归查询
- Oracle 递归查询
- 在oracle中通过connect by prior来实现递归查询!
- 对于oracle进行简单树查询(递归查询)
- mysql以及oracle的递归查询
- Oracle Connect By Prior用法(实现递归查询)
- oracle 递归查询
- oracle 递归查询
- oracle递归查询(查询条件ID下得所有子集)
- SQL递归查询(SqlServer/ORACLE递归查询)[语法差异分析]
- Oracle递归查询父子关系记录