oracle数据库start with,Oracle中connect by.start with.详解

当前位置:我的异常网» 数据库 » Oracle中connect by.start with.详解

Oracle中connect by.start with.详解

www.myexceptions.net  网友分享于:2014-02-24  浏览:1次

Oracle中connect by...start with...详解

Oracle中connect by...start with...详解

一、语法

大致写法:select * from some_table [where 条件1] connect by [条件2] start with [条件3];

其中 connect by 与 start with 语句摆放的先后顺序不影响查询的结果,[where 条件1]可以不需要。

[where 条件1]、[条件2]、[条件3]各自作用的范围都不相同:

[where 条件1]是在根据“connect by [条件2] start with [条件3]”选择出来的记录中进行过滤,是针对单条记录的过滤, 不会考虑树的结构;

[条件2]指定构造树的条件,以及对树分支的过滤条件,在这里执行的过滤会把符合条件的记录及其下的所有子节点都过滤掉;

[条件3]限定作为搜索起始点的条件,如果是自上而下的搜索则是限定作为根节点的条件,如果是自下而上的搜索则是限定作为叶子节点的条件;

示例:

假如有如下结构的表:some_table(id,p_id,name),其中p_id保存父记录的id。

select * from some_table t where t.id!=123 connect by prior t.p_id=

你可能感兴趣的:(oracle数据库start,with)