0

我在 Oracle 11g 中有一个分层查询,可以将所有叶节点从树中取出,而且效果很好。但是,当我遍历我的叶节点时,我需要尝试分别捕获路径的每个部分。有没有办法做到这一点?修改我的查询或第二个查询?

非常感谢任何帮助!

这是我的查询:

select c.id, 
   c.superid,
   c.name,
   SYS_CONNECT_BY_PATH(c.name, '>>') as PathName
from mytable c
where c.activestatus =0 AND
  c.id NOT IN(select distinct c2.superid from categorizations c2 where c2.superid IS NOT NULL)
start with c.superid IS NULL
connect by prior c.id = c.superid;

所以目前我得到一个输出,如:id,superid,name1,>>name1>>name2>>name3>>name

哪个好。但我试图以某种方式捕获每个节点名称(因为我需要以 XML 格式输出它)。

所以现在我的每个叶节点的 XML 看起来像

<Node1>
  <Project>name</Project>
  <PathName>>name1>>name2>>name3>>name</PathName>
</Node1>.  

我希望能够以某种方式获得看起来像

<Node1>
 <Project>name1
   <Project>name2
      <Project>name3
         <Project>name</Project>
      </Project>
   </Project>
</Project>
<PathName>>name1>>name2>>name3>>name</PathName>
</Node1>

....或类似的东西,基本上我希望能够将我的树层次结构输出到 XML。

4

1 回答 1

0

您可以使用<project>而不是>>预先添加另一个,然后使用level伪列在</project>每个级别附加一个

于 2012-05-11T11:09:23.227 回答