發(fā)布時(shí)間:2021-06-09
欄目:其他
3.2 CONNECT_BY_ISLEAF
在oracle9i的時(shí)候,查找指定root 下的葉子節(jié)點(diǎn)特點,是很復(fù)雜的深刻變革,oracle10g引入了一個(gè)新的函數(shù)結論,connect_by_isleaf,如果行的值為0 表示不是葉子節(jié)點(diǎn),1表示是葉子節(jié)點(diǎn)質生產力。
找出s_emp 中找出manager_id=2 開始的行為root適應性強,表示葉子節(jié)點(diǎn)和非葉子節(jié)點(diǎn),那么語句如下:
無限層次樹形筆記本select level,
id,
無限層次樹形筆記本manager_id,
last_name,
title,
無限層次樹形筆記本(case --使用case表達(dá)式判斷是否是葉子節(jié)點(diǎn)
when connect_by_isleaf = 1 then
葉子
else
不是葉子
無限層次樹形筆記本 end) isleaf
from s_emp
start with manager_id = 2
connect by prior id = manager_id;
3.3 CONNECT_BY_ISCYCLE和NOCYCLE關(guān)鍵字
如果從root 節(jié)點(diǎn)開始找其子孫先進的解決方案,找到一行拓展,結(jié)果發(fā)生和祖先互為子孫的情況,則發(fā)生循環(huán)宣講活動,oracle會(huì)報(bào)ORA-01436: CONNECT BY loop in user data不斷進步,在9i 中只能將發(fā)生死循環(huán)的不加入到樹中或刪除,在10g中可以用nocycle 關(guān)鍵字加在connect by之后效率,避免循環(huán)的參加查詢操作綠色化。并且通過connect_by_iscycle得到哪個(gè)節(jié)點(diǎn)發(fā)生循環(huán)。0表示未發(fā)生循環(huán)發展,1表示發(fā)生了循環(huán),如:
create table family1(
fatherid number,
childid number
);
insert into family1 values(null,1);
無限層次樹形筆記本 insert into family1 values(1,2);--父節(jié)點(diǎn)為1
insert into family1 values(1,3);
insert into family1 values(2,4);--發(fā)生循環(huán)
insert into family1 values(4,1);--子節(jié)點(diǎn)為1
insert into family1 values(4,5);
commit;
select connect_by_iscycle, fatherid,childid,sys_connect_by_path(childid,/)
from family1
start with fatherid is null
connect by nocycle prior childid=fatherid;
結(jié)果是:
3.4 CONNECT_BY_ROOT
文章地址:http://www.61py.com/article/other/xmdsoraclegxztx.html

- 1通王CMS 2.0簡(jiǎn)介
- 2黑帽網(wǎng)站排名檢測(cè)
- 3MySQL中經(jīng)典的too many connection怎么破
- 4網(wǎng)易郵箱洪陸駕:反垃圾郵件需集合全球力量
- 5站群友鏈換鏈神器
- 6云勢(shì)軟件VirgoEDC助力安徽萬邦研學體驗、迪時(shí)咨詢等公司臨床試驗(yàn)數(shù)據(jù)采集智能化
- 7Authorize 屬性通過聲明的方式保護(hù)控制器或其部分方法
- 8域名是稀有資源建設項目,好的域名,在一定時(shí)期內(nèi)會(huì)越來越升值
- 9解析常見的PHP緩存技術(shù)有哪些
- 10對(duì)ASP.NET程序員非常有用工具