收藏 分享(赏)

oracle树形结构查询.doc

上传人:kpmy5893 文档编号:7658057 上传时间:2019-05-23 格式:DOC 页数:4 大小:30.50KB
下载 相关 举报
oracle树形结构查询.doc_第1页
第1页 / 共4页
oracle树形结构查询.doc_第2页
第2页 / 共4页
oracle树形结构查询.doc_第3页
第3页 / 共4页
oracle树形结构查询.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、Oracle 树形结构实现我突然看见了一个函数 CONNECT BY,就想起以前想做一个树形的结构:就是大类型表 TB_INDUSTRYCATALOGUE 中有字段 INDUSTRYCATALOGUEID,name 小类型表TB_INDUSTRYNAME 中有字段 INDUSTRYNAMEID,INDUSTRYCATALOGUEID,name 要实现每个大类型名下有树形的小类型名。1.先创建一个表 aabb,字段为 id,name 导入 TB_INDUSTRYCATALOGUE 表中的数据:insert into aabb(id,name)select INDUSTRYCATALOGUEID,

2、namefrom TB_INDUSTRYCATALOGUE;2.在表 aabb 中加一个字段 pid 更改字段 pid 都为 0Update aabb set pid =0;3.类似创建表 aa 结构和 TB_INDUSTRYNAME 一样,导入 TB_INDUSTRYNAME 表的数据Insert into aaSelect * from TB_INDUSTRYNAME;4.有可能小类型表中的 INDUSTRYNAMEID 和大类型表中的 INDUSTRYCATALOGUEID 有重复的数据,这样就会造成 CONNECT BY 循环出错,第一次我就出现这个错误,所以避免重复可以把 aa 中的

3、 INDUSTRYNAMEID 都加一个很大的数和INDUSTRYCATALOGUEID 错开,我加了 1000。Update aa set INDUSTRYNAMEID=to_char(to_number(INDUSTRYNAMEID)+1000);5.这样就可把 aa 的数据导入 aabb 了。Insert into aabb(id,pid,name)Select INDUSTRYNAMEID,INDUSTRYCATALOGUEID,name from aa;6.这样就可以查询了:为了效果好点可以先设一下页的大小Set pagesize 1000其实 SYS_CONNECT_BY_PATH

4、 这个函数是 oracle9i 才新提出来的! 它一定要和 connect by 子句合用!第一个参数是形成树形式的字段,第二个参数是父级和其子级分隔显示用的分隔符. 说白了这个函数的作用就是为你清楚的构建出树结构的查询结果。select SYS_CONNECT_BY_PATH(name, ) nameefrom aabbstart with pid=0connect by prior id=pid;环保环保废纸环保废金属环保纺织废料环保公共环卫设施环保环保监测仪器环保环保产品加工交通运输工具交通运输工具电梯、缆车及配件交通运输工具飞行器及配件交通运输工具集装箱交通运输工具二手交通产品及用具select LPAD( , 4*level-1)|name nameefrom aabbstart with pid=0connect by prior id=pid;环保废纸废金属纺织废料皮革废料化工废料电子浆料交通运输工具电梯、缆车及配件飞行器及配件集装箱

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报