返回顶部
关闭软件导航
位置:首页 > 资讯 > 其他>找出指定层次中的叶子节点

  Leaf(叶子)就是没有子孙的孤立节点。Oracle 10g提供了一个简单的connect_by_isleaf=1,0 表示非叶子节点

  select level,id,manager_id,last_name, title from s_emp

  where connect_by_isleaf=1 –表示查询叶子节点

  start with manager_id=2

  connect by prior id=manager_id;

  也可以通过连接查询获得,方法有多种,叶子节点肯定是level最大的节点。

  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的联合使用,比如给定两个日期,查询中间所有的日期,按月递增:

  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

如果您觉得 找出指定层次中的叶子节点 这篇文章对您有用,请分享给您的好友,谢谢
文章地址:https://www.tianxianmao.com/article/other/zczdcczdyzjd.html
解放双手无尽可能,有问题添加天线猫微信