oracle的connect by 什么意思

见下面几个语句 (请问为什么第三个语句插入的数据只有一条, where 和 connect by的区别):

create table t1 as select rownum as id, rownum+1 as id2 from dual connect by level<=5;
select * from t1

https://img3.mukewang.com/5b8261ce00015c7e01650170.jpg

create table t2 as select rownum as id, rownum+1 as id2 from dual connect by rownum <=5;
select * from t2

https://img.mukewang.com/5b8261dc00015c7e01650170.jpg

create table t3 as select rownum as id, rownum+1 as id2 from dual where rownum <=5;
select * from t3

https://img3.mukewang.com/5b8261ec00012c4e02300190.jpg


海绵宝宝撒
浏览 1395回答 2
2回答

守着星空守着你

select ... from ... connect by ...&nbsp;递归遍历查询

慕桂英3389331

connect by 是oracle中特殊的递归查询的语法,多用于组织结构遍历、菜单树遍历等场景,如下面的一个功能菜单表,pid表示上级菜单的id,0表示无上级菜单,如果想查出顶级菜单下的所有菜单,可以用下面的写法:id pid&nbsp;1 02 13 14 25 3select&nbsp;*from&nbsp;tstart&nbsp;with&nbsp;pid&nbsp;=&nbsp;0connect&nbsp;by&nbsp;pid&nbsp;=&nbsp;prior&nbsp;id你给的例子中,是connect by的一个特殊用法,用来产生指定行的一个虚拟表。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Oracle