oracle CONNECT_BY_ROOT的prior用法 10

selectdistinctbmba001,bmba003,CONNECT_BY_ROOT(bmba001),LEVELfrombmba_twherebmbaent='1... select distinct bmba001, bmba003, CONNECT_BY_ROOT(bmba001) ,LEVEL
from bmba_t
where bmbaent = '100'
connect by nocycle prior bmba003 = bmba001
and prior bmba002 = bmba002
start with bmba001 in (select xcce007 from xcce_t)
order by level

请问下,这里面的and prior是什么意思,其他的大概都懂了,为什么要加上一个and prior bmba002 = bmba002? 这个是做什么限制条件的吗?
展开
 我来答
司马刀剑
高粉答主

2018-11-02 · 每个回答都超有意思的
知道顶级答主
回答量:4.6万
采纳率:93%
帮助的人:7476万
展开全部
connect by 是结构化查询中用到的,其基本语法是:
select ... from tablename start by cond1
connect by cond2
where cond3;
简单说来是将一个树状结构存储在一张表里,比如一个表中存在两个字段:
id,parentid那么通过表示每一条记录的parent是谁,就可以形成一个树状结构。
用上述语法的查询可以取得这棵树的所有记录。
其中COND1是根结点的限定语句,当然可以放宽限定条件,以取得多个根结点,实际就是多棵树。
COND2是连接条件,其中用PRIOR表示上一条记录,比如 CONNECT BY PRIOR ID=PRAENTID就是说上一条记录的ID是本条记录的PRAENTID,即本记录的父亲是上一条记录。
COND3是过滤条件,用于对返回的所有记录进行过滤。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式