如何在xml树中将子项作为父项

时间:2013-05-13 02:18:35

标签: sql xml mq messagebroker

我正在处理消息代理。但我正在做的查询非常简单,任何数据库人员都可以回答。

这里是读取xml和获取xml输出的查询代码

SET OutputRoot.XMLNSC.root.row[rowCnt].product_Info = THE (SELECT THE(SELECT C.*:Codes.*:Code AS TyrePatternCd FROM T.*:Classification[] AS C 
                    WHERE C.(XMLNSC.Attribute)Type = 'BRAND') AS product
                FROM itemMaster.*:ItemMasterHeader[] AS T );

这给出了像

这样的xml输出
<root name="Product">
 <row>
  <product_Info>
   <product>
    <TyrePatternCd>002</TyrePatternCd>
   </product>    
 </row>
</root>

我怎样才能像

那样
   <root name="Product">
     <row>
      <product_Info>
        <TyrePatternCd>002</TyrePatternCd>  
     </row>
    </root>

如果我删除查询中的AS product,则会在树中生成column标记。 我怎样才能让孩子成为父母?

1 个答案:

答案 0 :(得分:1)

使用SELECT ITEM省略'product'元素,并直接指定结果。

SET OutputRoot.XMLNSC.root.row[rowCnt].product_Info = THE (SELECT ITEM THE(SELECT C.*:Codes.*:Code AS TyrePatternCd FROM T.*:Classification[] AS C 
                    WHERE C.(XMLNSC.Attribute)Type = 'BRAND')
                FROM itemMaster.*:ItemMasterHeader[] AS T );