1

我们正在将我们的 sql server 升级到 2K8 R2 并且 FOR XML AUTO 查询的输出已经改变。

查询从三个表中输出列

结果集返回三行,每列相同,最后两列来自第三个表。用于显示的结果如下

<element1 myval="Test">
    <element2 myotherval="atest">
         <element3 a="a"/>
         <element3 a="b"/>
         <element3 a="c" />
    </element2>
</element1>

它没有显示

    <element1 myval="Test">
        <element2 myotherval="atest">
             <element3 a="a"/>
         </element2>
    </element1>
    <element1 myval="Test">
        <element2 myotherval="atest">
             <element3 a="B"/>
         </element2>
    </element1>
    <element1 myval="Test">
        <element2 myotherval="atest">
             <element3 a="C"/>
         </element2>
    </element1>

我一直在尝试使用 For XML Path,但它仍然返回 element1 的 3 个单独实例,而不是对数据进行分组。

4

1 回答 1

1

如果您想要使用 FOR XML PATH 的子树,则必须为每个子树编写子查询。因此,在您的情况下,您有一个 element1 的父 select 语句,其中一列是一个子查询,它获取 element2 中需要的任何内容(这反过来也可以是子查询)。如果您使用子查询并且希望从中返回 XML,请使用

FOR XML PATH('elementN'), 类型

否则它将转义 XML 代码。

于 2010-08-09T10:18:26.720 回答