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? 这个是做什么限制条件的吗? 展开
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? 这个是做什么限制条件的吗? 展开
1个回答
展开全部
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是过滤条件,用于对返回的所有记录进行过滤。
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是过滤条件,用于对返回的所有记录进行过滤。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询