oralce中查询某个机构号及其下属机构号,这样的树形数据查询问题

前端之家收集整理的这篇文章主要介绍了oralce中查询某个机构号及其下属机构号,这样的树形数据查询问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Oracle中使用connect by prior递归算法可以解决这类问题

语法:

select .... from tablename start with 条件1 connect by 条件2
where 条件3

例如: select * from table start with branch_id = "B00000"
connect by prior branch_id = parent_branch_id;
说明: 1. 条件1是根节点的限定语句,可以放宽条件,取得多个根节点,实际上就是多个树
条件2是连接条件,其中prior表示上一条记录,像例子中的 上一条记录的branch_id是本记录的parent_branch_id
条件3是过滤条件
2. connect by 说明每行数据将按层次顺序检索,priory 运算符必须放置在连接关系的两列中的某一个的前面,对于节点间的父子关系,prior运算符在一侧表示父节点,在另一侧表示子节点,从而确定查找树结构是自顶向下还是自底向上
3. 关于prior具体使用,prior 在connect by 字句等号的后面,则强制从叶节点到根节点的顺序检索,如果在connect by 字句的前面,像举的例子一样,就是从根节点查所有的子节点。
4. 在树结构查询的时候,可以使用where 过滤节点,order by排序
原文链接:/oracle/209167.html

猜你在找的Oracle相关文章