【问题标题】:Hierarchical Query - Capturing the parts of the path分层查询 - 捕获路径的各个部分
【发布时间】:2012-05-10 20:48:12
【问题描述】:

我在 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>.  

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

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

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

【问题讨论】:

  • 输出会是什么样子?我不确定分别捕获路径的每个部分对您意味着什么

标签: sql oracle hierarchical-query


【解决方案1】:

您可以使用&lt;project&gt; 而不是&gt;&gt; 附加另一个,然后使用level 伪列在每个级别附加一个&lt;/project&gt;

【讨论】:

    猜你喜欢
    • 2020-04-30
    • 1970-01-01
    • 2018-12-10
    • 2017-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-22
    相关资源
    最近更新 更多