Leaf(葉子)就是沒有子孫的孤立節(jié)點。Oracle 10g提供了一個簡單的connect_by_isleaf=1,0 表示非葉子節(jié)點
select level,id,manager_id,last_name, title from s_emp
where connect_by_isleaf=1 –表示查詢葉子節(jié)點
start with manager_id=2
connect by prior id=manager_id;
也可以通過連接查詢獲得,方法有多種探討,葉子節(jié)點肯定是level最大的節(jié)點。
select a.lev,b.id from (
select max(level) lev from s_emp --查詢最大的level
無限層次樹形筆記本 start with manager_id=2
connect by prior id=manager_id) a,
(select level lev,id
無限層次樹形筆記本from s_emp
start with manager_id=2
connect by prior id=manager_id) b
where a.lev=b.lev;
注意:level不可以前面加表名
其他:
Connect by 與rownum的聯(lián)合使用經過,比如給定兩個日期勇探新路,查詢中間所有的日期,按月遞增:
SELECT to_date(2008-10-1, YYYY-MM-DD) + ROWNUM - 1
FROM dual
CONNECT BY rownum <= to_date(2008-10-5, YYYY-MM-DD) -
to_date(2008-10-1, YYYY-MM-DD) + 1;
獲取01到99
select case when length(rownum)=1 then to_char(0)||rownum else to_char(rownum) end
無限層次樹形筆記本from dual
connect by rownum<=99;
無限層次樹形筆記本select lpad(rownum,2,0) from dual connect by rownum<=99;
3 增強特性
3.1 SYS_CONNECT_BY_PATH
下一篇:層次交換網絡基本結構
文章地址:http://61py.com/article/other/zczdcczdyzjd.html