`

ORACLE树(查询所有子节点)

 
阅读更多
根据父节点查询所有子节点:
SELECT t.object_id, SYS_CONNECT_BY_PATH(t.name,'/')as fullName
  FROM ibs_company_dept T
    where t.company_id=1000333
    START WITH T.PARENT_ID= -1 CONNECT BY PRIOR T.OBJECT_ID =T.PARENT_ID
    ORDER BY LEVEL DESC


从当前节点开始:
SELECT   SYS_CONNECT_BY_PATH (mc, '/')  
FROM flfl  
START WITH ID = 6498  
CONNECT BY PRIOR ParentId   = ID;



列出当前节点的根节点。
在前面说过,根节点就是start with开始的地方。
SELECT  CONNECT_BY_ROOT mc, flfl.*  
FROM flfl  
START WITH ID = 6498  
CONNECT BY PRIOR ParentId   = ID; 
connect_by_root函数用来列的前面,记录的是当前节点的根节点的内容。


列出当前节点是否为叶子。
这个比较常见,尤其在动态目录中,在查出的内容是否还有下级节点时,这个函数是很适用的。
SELECT  CONNECT_BY_ISLEAF, flfl.*  
FROM flfl  
START WITH ParentId   IS NULL 
CONNECT BY ParentId   = PRIOR ID; 
connect_by_isleaf函数用来判断当前节点是否包含下级节点,如果包含的话,说明不是叶子节点,这里返回0;反之,如果不包含下级节点,这里返回1。

 
分享到:
评论

相关推荐

    Oracle树查询实例分析

    `START WITH ID = some_id CONNECT BY sjflid = PRIOR ID`的查询能够获取指定节点及其所有子节点,包括间接子节点。`PRIOR`关键字在这里用于指向前一个节点,确保沿着父到子的方向遍历。 4. **查找直属父节点** ...

    Oracle树查询总结

    使用 `START WITH ID=某个特定值` 定义起始节点,然后 `CONNECT BY parent_id = PRIOR ID` 指示 Oracle 从当前节点开始,逐层查找所有子节点,直至找到所有后代。 4. **查找一个节点的直属父节点(父亲)** 通过 ...

    Oracle递归树形结构查询功能

    通过递归查询,我们可以轻松地获取任意部门及其所有子部门的信息,无需编写复杂的Java或其他编程语言代码。 在进行递归查询优化时,要注意避免无限循环和性能问题,确保`CONNECT BY`条件正确无误,必要时还可以使用...

    oracle树查询

    ### Oracle树查询详解 在Oracle数据库中,进行树状结构数据查询时,通常会使用到特定的查询语法,包括`START WITH`、`CONNECT BY PRIOR`等关键字。本文将详细介绍这些关键字及其应用场景,并通过具体示例来帮助理解...

    Oracle树查询及相关函数

    Oracle树查询是数据库管理中一种非常实用的技术,它允许我们处理具有层级关系的数据。在Oracle中,树查询主要依赖于`SELECT...START WITH...CONNECT BY...PRIOR`语法,这个语法让我们能够按照层级结构遍历数据。本文...

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

    在Oracle数据库中,递归查询是一种强大的工具,用于处理层级数据结构,如组织结构、文件系统或树形关系。在本篇文章中,我们将探讨如何利用递归查询来查找父子兄弟节点,这对于理解和处理这类关系非常关键。 首先,...

    Oracle查询树形结构

    这条语句将从部门 ID 为 76 的部门开始,查询所有的子部门,直到叶子节点。 在查询树形结构时,可以使用 LEVEL 关键字来查询当前节点的层次。例如: SELECT a.*, LEVEL FROM persons.dept a START WITH paredeptid...

    MySQL实现树状所有子节点查询的方法

    在MySQL中,实现树状所有子节点的查询并非像Oracle那样可以直接使用Hierarchical Queries和`CONNECT BY`语句。然而,尽管MySQL不直接支持这样的功能,我们仍然可以通过其他方法来达到相同的效果。以下将详细介绍几种...

    【Oracle】树状结构查询

    `WHERE`子句可以用来限制查询结果,但它仅作用于当前节点,不会向下传递至子节点或向上影响父节点。例如,排除特定员工: ```sql SELECT LEVEL, SYS_CONNECT_BY_PATH(a.ename, '/'), a.* FROM empa WHERE a.empno ...

    oracle树结构查询方法

    `PRIOR`关键字用于指示父节点和子节点的关系,当PRIOR放在列名前面时,表示该列是父节点的引用。`START WITH`子句则指定了树的起始节点,即根节点。如果没有提供`START WITH`子句,查询会从满足条件的所有行开始,每...

    递归查询菜单树,支持mysql,oracle

    这里,我们将深入探讨如何使用递归查询来构建菜单树,并特别关注在MySQL和Oracle这两种广泛使用的数据库系统中的实现。 首先,我们要理解什么是递归查询。递归查询是一种在数据库中处理层次数据的方法,它通过自身...

    基于Oracle的层次树查询功能及实例分析.pdf

    《基于Oracle的层次树查询功能及实例分析》 在关系型数据库中,处理具有层次结构的数据通常需要复杂的迭代编程,而Oracle的层次树查询功能提供了一种高效且简洁的解决方案。本文将深入探讨Oracle的层次树查询技术,...

    Oracle中的树状查询(递归查询)

    `CONNECT BY`后的`PRIOR condition2`定义了子节点与其父节点之间的关系。 3. **连接操作符** - `PRIOR`:用于引用当前行的上一行,是递归的关键。 - `SELF`:在某些情况下,可以替换`PRIOR`,表示当前行自身。 -...

    oracle树形结构,结合dtree插件使用显示树状结构菜单

    此查询语法允许我们从一个根节点开始,遍历到所有子节点。例如: ```sql SELECT level, employee_name, manager_id FROM employees START WITH manager_id IS NULL CONNECT BY PRIOR employee_id = manager_id; ```...

    Oracle中树的操作

    下面的查询将从根节点(名称为'ROOT')开始,递归地显示所有子节点。 ```sql SELECT ST.* FROM SCOTT_TREE ST START WITH ST.NAME = 'ROOT' CONNECT BY PRIOR ST.ID = ST.PARENT_ID ORDER BY LEVEL ASC; ``` 这个...

    Oracle层次查询功能的剖析.pdf

    例如,若要查询医科大学的所有子节点及其子孙节点,可以编写如下查询语句: ```sql SELECT * FROM HIERARCHICAL_DATA START WITH ID = 'A' CONNECT BY PRIOR ID = PARENT_NODE; ``` 这将返回所有从医科大学开始的...

Global site tag (gtag.js) - Google Analytics