注册 登录
壹佰网|ERP100 - 企业信息化知识门户 返回首页

的个人空间 https://www.erp100.com/?0 [收藏] [复制] [RSS]

日志

Oracle 层次查询 小结

已有 1414 次阅读2008/1/12 20:06

这两天碰到用户 一个比较变态暴 BOM 的需求,开始时写了个 递归 函数来实现,发现很不好用(因为在递归函数中要把暴出的结果插入一个表里)。 后来突发奇想我为什么不能用层次查询来实现呢?但是 [精通Oracle.10g.Pl.sql.编程.pdf]  这本书提供的例子实在是满足不了用户的需求。 仔细研究层次查询里 connect by 这个语句 我可不可以在 prior expr = expr 里多写几个 连接条件呢?这样不就实现了用户的需求吗? 一可气写了 connect by ( prior expr1 = expr1 and prior expr2 = expr2 and prior expr3 = expr3 and prior expr4 = expr4  ) 四个连接条件 , 在 PLSQL 上运行 ,哈哈 果然没报错, 大致得到了我要的结果!心里那个高兴啊,哈哈! 在给那个语句调整几次最终得到了我要的结果。心想一个简单的 层次查询还有这么多不知的学问啊,于是 百度一下 oracle层次查询 ,果然没让我失望,已经有N的达者总结了N多的经验。 于是一条一条的 看过去, 收获不小啊, 现将 层次查询 的一些伪列 列出来, level (这个大家最熟悉的), connect_by_isleaf , connect_by_iscycle (希望大家还能补充点更多的伪列)。还有两个新的操作 connect_by_root , sys_connect_by_path( 具有层次关系的列 ,'\' )   一个不改变层次关系的排序关键字 SIBLINGS  , 一个用于当层次关系存在循环时的关键字 nocycle 。详细用法请看原贴 (不想,也不能枪原作者的功劳啊!哈哈!) http://industry.ccidnet.com/art/1155/20050327/801621_1.html  http://www.apsoft.com.cn/down/article/2425/Article8929_1.htm   欢迎大家提建议或者 把你的经验分享出来啊。哈哈!

评论 (0 个评论)

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 07:35 , Processed in 0.008566 second(s), 12 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部