`

oracle关于树形节点处理

阅读更多
create table automobiles(
       part_id number(5) constraint pk_auto_part_id primary key,
       parent_id number(5) constraint fk_auto_ppid_ references  automobiles(part_id),
       part_cname varchar2(30) not null,
       part_ename varchar2(30) not null,
       mp_cost number(9,2),
       desribe varchar2(20)    
);
--插入数据
insert into automobiles values( 1,1,'汽车','mobile',84321.99,'Assembly');
insert into automobiles values( 2,1,'车身','bodywork',19892.99,'Manufacture');
insert into automobiles values( 3,1,'发送机','engine',42128,'Purchase');
insert into automobiles values( 4,1,'附件','attached',15212,'Assembly');
insert into automobiles values( 5,2,'保险杠','bumper',4812.95,'Purchase');
insert into automobiles values( 6,2,'底盘','chassis',12795.11,'Manufacture');
insert into automobiles values( 7,2,'行李箱','Boot',812.11,'Manufacture');
insert into automobiles values( 8,6,'车轮','Wheel',2062.2,'Manufacture');
insert into automobiles values( 9,6,'挡泥板','Mudguard',990,'Manufacture');
insert into automobiles values( 10,8,'轮胎','Tyre',300,'Purchase');
insert into automobiles values( 11,3,'发送机盘','Bonnet',3212,'Manufacture');
insert into automobiles values( 12,3,'活塞','Piston',1112.2,'Manufacture');
insert into automobiles values( 13,3,'汽化器','Carburetter',712.29,'Manufacture');
insert into automobiles values( 14,4,'变速器','Gearbox',5712.25,'Manufacture');
insert into automobiles values( 15,4,'仪表板','Dashboard',538.92,'Manufacture');
insert into automobiles values( 16,14,'制动器','Carburetter',712.29,'Manufacture');
insert into automobiles values( 17,14,'变速杆','Gearshift',2001,'Manufacture');
insert into automobiles values( 18,17,'传动轴','Shaft',1101,'Manufacture');
insert into automobiles values( 19,15,'里程表','Milometer',350.28,'Purchase');
--分层显示当一级目录的父节点不为空时容易出现loop循环找parent_id就找不到了
--解决办法加上nocycle就可以了,或者把你的数据1,1--〉改为1,null
select level,part_id,parent_id,part_cname,part_ename,mp_cost,desribe
from automobiles
start with part_id=1
connect by nocycle prior part_id=parent_id
order by level;
--缩进显示节点
select level,
    lpad('  ',2*level-1)||part_cname||' '||part_ename as partName
from automobiles
start with part_id=1
connect by nocycle prior part_id=parent_id
order by level;
分享到:
评论

相关推荐

    Oracle递归树形结构查询功能

    oracle树状结构查询即层次递归查询,是sql语句经常用到的,在实际开发中组织结构实现及其层次化实现功能也是经常遇到的。这篇文章给大家介绍了Oracle递归树形结构查询功能,需要的朋友参考下

    Oracle通过递归查询父子兄弟节点方法示例

    主要给大家介绍了关于Oracle如何通过递归查询父子兄弟节点的相关资料,递归查询对各位程序员来说应该都不陌生,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。

    Oracle SQL树形结构查询

    本文介绍Oracle中使用START WITH...CONNECT BY PRIOR子句实现递归查询树形结构的方法,小伙伴们可以参考一下。

    PostgreSQL树形结构的递归查询示例

    背景 处理不确定深度的层级结构,比如组织机构,一个常用的设计是在一张表...最近在项目中使用PostgreSQL来查询树形数据,记录一下。 构造样本数据 drop table if exists demo.tree_data; create table demo.tree_d

    在Mysql数据库里通过存储过程实现树形的遍历

    关于多级别菜单栏或者权限系统中部门上下级的树形遍历,oracle中有connect by来实现,mysql没有这样的便捷途径,所以MySQL遍历数据表是我们经常会遇到的头痛问题,下面通过存储过程来实现。 1,建立测试表和数据: ...

    Apex-Fancy-Tree-Select:Oracle APEX的花式树插件

    可以将所选节点设置为不同的APEX项目。 它还具有将其用作只读树的选项,并且可以在每次刷新具有相同树的页面时在客户端的本地存储中缓存大树,以节省加载数据。 也可以使用搜索字段过滤树。 对于工作的演示,只需...

    Mysql树形递归查询的实现方法

    对于数据库中的树形结构数据,如部门表,有时候,我们需要知道某部门的所有下属部分或者某部分的所有上级部门,这时候就需要用到mysql的递归查询 最近在做项目迁移,Oracle版本的迁到Mysql版本,遇到有些oracle的...

    oracle 层次查询

    高级sql关于层次查询更新 对于层次查询需要掌握: 1.解释层次查询的基本概念,识别需求中需要用到层次查询的能力。 2.建立和格式化一个树形报表(tree report)。...3.修剪树形结构的节点(node)和枝(branches)。

    Sqlserver2000经典脚本

    │ 8.1.4 生成编码规则调整处理T-SQL语句的函数.sql │ │ 8.1.5 删除节点处理的通用存储过程.sql │ │ 8.1.5 移动节点处理的通用存储过程.sql │ │ 8.2.2 树形数据层次显示处理示例.sql │ │ ...

    经典SQL脚本大全

    │ │ 8.2.2 树形数据深度排序处理示例(模拟单编号法).sql │ │ 8.2.2 树形数据深度排序处理示例(递归法).sql │ │ 8.2.3 查找指定节点的所有子节点的示例函数.sql │ │ 8.2.4 查找指定节点的所有父节点的示例...

    javaOA办公系统模块设计方案.pdf

    1.代码⽣成器: [正反双向](单表、主表、明细表、树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不⽤写,⽣成完整的⼀个模块,带页⾯、建表sql脚本、处理类、service等完整模块 2.多数据源:(⽀持...

    javapms门户网站源码

    点击“文档中心”左侧功能菜单的“栏目管理”,栏目管理也是采用直观、方便的树形组织形式进行网站栏目管理,层次鲜明,和前台页面栏目一一对应,栏目树如下图所示: 点击某个栏目,右侧会显示该栏目下的所以子...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例018 设计关于进销存管理系统的界面 27 第2章 Java基础应用 29 2.1 基本语法 30 实例019 输出错误信息与调试信息 30 实例020 从控制台接收输入字符 31 实例021 重定向输出流实现程序日志 31 实例022 自动类型转换...

    JAVA上百实例源码以及开源项目

     关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...

    JAVA上百实例源码以及开源项目源代码

     关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...

Global site tag (gtag.js) - Google Analytics