oralce递归查询树
三、基本语法
start with :设置起点,省略后默认以全部行为起点。
connect by [condition] :与一般的条件一样作用于当前列,但是在满足条件后,会以全部列作为下一层级递归(没有其他条件的话)。
prior : 表示上一层级的标识符。经常用来对下一层级的数据进行限制。不可以接伪列。
level :伪列,表示当前深度。
connect_by_root() :显示根节点列。经常用来分组。
connect_by_isleaf :1是叶子节点,0不是叶子节点。在制作树状表格时必用关键字。
sys_connect_by_path() :将递归过程中的列进行拼接。
nocycle , connect_by_iscycle : 在有循环结构的查询中使用。
siblings : 保留树状结构,对兄弟节点进行排序
链接:https://www.jianshu.com/p/0f34639e7701
select * from(select t.* from tb_tree t
start with t.tree_id='8af8470a47aad8e20147aad92e310144'
connect by t.up_id = prior t.tree_id)
where tree_level in ('04') and volt_level_flag in ('02','03','04');
select * from(select t.* from tb_tree t
start with t.tree_id='6D49854F-E2C1-4A98-A2F6-8EE064CE58FB-14260'
connect by t.up_id = prior t.tree_id)
where tree_level in ('04') -- and volt_level_flag in ('02','03','04');
select t.tree_id,
case
when t.short_name is null then
t.tree_name
else
t.short_name
end as tree_name,
t.up_id,
t.volt_code,
t.subs_count,
t.line_count,
t.tran_g_count,
t.tran_z_count,
t.jlx_count,
t.ssds
from tb_tree t
where t.tree_level in('01','02','03','04') and t.volt_level_flag=01
order by tree_level,up_id,volt_code desc,sort_no
select t.tree_id,
case
when t.short_name is null then
t.tree_name
else
t.short_name
end as tree_name,
t.up_id,
t.volt_code,
t.subs_count,
t.line_count,
t.tran_g_count,
t.tran_z_count,
t.jlx_count,
t.ssds
from (select t.* from tb_tree t
start with t.tree_id='6D49854F-E2C1-4A98-A2F6-8EE064CE58FB-14260'
connect by t.up_id = prior t.tree_id) t
where t.tree_level in('01','02','03','04') and t.volt_level_flag=01
order by tree_level,up_id,volt_code desc,sort_no
分享到:
相关推荐
oracle树状结构查询即层次递归查询,是sql语句经常用到的,在实际开发中组织结构实现及其层次化实现功能也是经常遇到的。这篇文章给大家介绍了Oracle递归树形结构查询功能,需要的朋友参考下
递归查询菜单树,支持mysql,oracle,含表结构,递归查询菜单,支持mysql,oracle,含表结构递归查询菜单。
Oracle使用递归查询。查询树结构的sql。在Oracle中,递归查询要用到start with ……connect by prior……
oracle 如何递归查询父子关系。经常用于构造树结构
Oracle使用递归SQL展示一棵树
有的情况下,我们需要用递归的方法整理数据,这才程序中很容易做到,但是在数据库 ...下面我以最典型的树形结构来说明下如何在Oracle使用递归查 询。 为了说明方便,创建一张数据库表,用于存储一个简单的树形结构
Oracle中的树状查询(递归查询),权限查询,树形结构
主要给大家介绍了关于Oracle如何通过递归查询父子兄弟节点的相关资料,递归查询对各位程序员来说应该都不陌生,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
oracle菜单树查询 使用实例 使用START WITH CONNECT BY PRIOR子句实现递归查询
完美解决多级递归查询,支持多种数据库,可以参照类似写法。有的数据库还是不支持的,但有类似的写法如oracle
在ORACLE、MSSQL、MYSQL中树结构表递归查询的实现.pdf
NULL 博文链接:https://flysky7931.iteye.com/blog/706171
用mysql实现oracle递归,通过with as 来实现
前言 ...Oracle递归查询 oracle实现递归查询的话,就可以使用start with … connect by connect by递归查询基本语法是: select 1 from 表格 start with … connect by prior id = pId start with
Oracle的递归查询收集的几条在oracle中通过connectbyprior来实现递归查询 Startwith...ConnectBy子句递归查询一般用于一个表维护树形结构的应用。 创建示例表:CREATETABLETBL_TEST(IDNUMBER,NAMEVARCHAR2(100BYTE),...
本文介绍Oracle中使用START WITH...CONNECT BY PRIOR子句实现递归查询树形结构的方法,小伙伴们可以参考一下。
内含很多oracle的语法和常用函数,包括 对于oracle进行简单树查询(递归查询),oracle内置函数大全, PLSQL 编程手册(SQL大全),及分页建表等很多学习资料。
在不引入MPTT模型的前提下,必须通过递归算法来查询某个节点和下级子节点。 Oracle提供的connect by扩展语法,简单好用。但是其他的RDBMS就没这么人性化了(或者我不知道)。最近在项目中使用PostgreSQL来查询树形...