Oracle 数据层级查询
在Oracle数据库中,可以使用CONNECT BY
子句来执行层级查询,这通常用于树或层次结构的数据。以下是一个使用CONNECT BY
子句的例子,假设我们有一个组织结构表organizations
,它有id
和parent_id
两个字段,parent_id
表示上级组织的id
。
SELECT id, parent_id, level
FROM organizations
START WITH parent_id IS NULL
CONNECT BY PRIOR id = parent_id;
这个查询从根节点(即没有父节点的节点,通常是NULL
)开始,然后递归地查询所有子节点。level
是一个伪列,表示当前行距离树的根节点的距离(即层级)。
如果你想查询特定节点的直接子节点,可以将START WITH
子句中的条件改为特定节点的id
:
SELECT id, parent_id, level
FROM organizations
START WITH id = :specific_id
CONNECT BY PRIOR id = parent_id;
在这个查询中,:specific_id
是你要查询子节点的节点id
。
评论已关闭