ORACLE中使用递归查询 oracle递归查询父节点

在数据库查询中常常会碰到要查询树形结构的数据,需要用一个字段的数据当做下一条记录的父节点继续查询,如果在不知道有多少级节点的情况下一次次手写SQL查询会很繁琐而没有效率,这时可以使用oracle中的connectwith prior递归算法:Oracle中start with...connect by prior子句用法 connect by是结构化查询中用到的,其基本语法是:
select ... from tablename start with条件1
ORACLE中使用递归查询 oracle递归查询父节点
connect by 条件2
where 条件3;
例:
select * from table
start with org_id = 'HBHqfWGWPy'
connect by prior org_id =parent_id;
在实际使用时遇到两个问题,一是如果把where子句放在start with...connectby...子句后时会提示:ORA-00933:SQl命令未完全结束。此时光标置于where处,如果将where放在start with...connectby...子句前则可以正常执行。二是查询的数据中不能有自循环,即例子中的 org_id和 parent_id在同一条记录中不能相等,否则会提示:ORA-01436:用户数据中的connectby 循环。这两点需要注意。
补注:在遇到有循环的查询时,使用connectbyNOCYCLEprior就可以避免报错!
以下是参考到的网络文档:http://www.cnblogs.com/chen1388/archive/2010/09/25/1834827.htmlhttp://zhidao.baidu.com/question/281792402.htmlhttp://zhidao.baidu.com/question/281792402.html

  

爱华网本文地址 » http://www.413yy.cn/a/25101016/314438.html

更多阅读

如何在微信中使用滴滴打车 微信滴滴怎么付款

如何在微信中使用滴滴打车——简介如今,滴滴打车手机软件大大的方便了我们的出行,使得我们随时随地都可以告诉出租车我们的需求,实现快速的响应。这无疑大大的提高了我们的出行效率,方便了我们的生活。小编在此教大家如何利用简单的利用

在Win7系统中使用Readyboost加速 win7系统加速器

在Win7系统中使用Readyboost加速——简介ReadyBoost是Vista系统开始加入的重要新功能之一,而在win7系统中这项功能得到了进一步的增强,并且实用性更佳。ReadyBoost利用了闪存随机读写及零碎文件读写上的优势来提高系统性能,主要是为了

怎样在股市操作中使用好缺口理论 股市缺口是什么意思

缺口分普通缺口、突破缺口、持续性缺口与消耗性缺口四种。缺口是研判形态时最有力的辅助依据。从缺口发生的部位和大小,可以预测股价走势的强弱及确定是突破还是已到趋势的尽头。怎样在股市操作中使用好缺口理论——工具/原料怎样

凭证中使用红字和负数是根本性的错误 红字发票与负数发票

2011年初,我们写过一篇“关于会计中的红字和负数”,最后有一个结论:在凭证中使用红字和负数是完全错误的。2012年初我们发布了财务系统后,仍然经常有人在讨论这个问题,很多朋友说很难对本公司的会计解释这些,因为在凭证中使用红字和负数是

声明:《ORACLE中使用递归查询 oracle递归查询父节点》为网友浮光之海分享!如侵犯到您的合法权益请联系我们删除