oracle递归查询最上级取最上级
时间: 2023-07-18 19:16:30 浏览: 410
oracle-高级查询
要取得递归查询结果中的最上级,可以在查询语句中添加一个WHERE子句,限制查询结果为最顶级的节点。
具体的查询语句如下所示:
```
SELECT id, name
FROM your_table
CONNECT BY PRIOR parent_id = id
START WITH parent_id IS NULL
AND id = (
SELECT MIN(id)
FROM your_table
WHERE parent_id IS NULL
)
```
其中,your_table为表名,id和name为需要查询的字段,parent_id为上级ID的字段名。通过CONNECT BY PRIOR语句可以进行递归查询,START WITH语句指定了起始节点为顶级节点(即parent_id为空的节点)。在WHERE子句中,通过子查询获取最顶级的节点ID,然后限制查询结果为该节点。最终查询结果为最顶级节点的ID和名称。
注意,如果存在多个顶级节点,需要根据实际情况进行修改。
阅读全文