SQL Server 2005查询XML数据类型相关

时间:2012-10-30 07:41:00

标签: sql xml sql-server-2005

我从同一张表中选择2组列,如下所示。

select (select a, b, c from T1 FOR XML RAW('CAT1')),
       (select d, e, f from T1 FOR XML RAW('CAT2'))
for XML PATH('Parent')

查询结果为

<Parent>&lt;CAT1 a="Data1" b="Data2', c="Data3" &gt;&lt;CAT2 d="Data4" e="Data5" f="Data6"&gt;</Parent>

如何避免?我会附上一个合适的父xml?

预期结果

<Parent>
   <CAT1 a="Data1" b="Data2', c="Data3">
   <CAT2 d="Data4" e="Data5" f="Data6">
</Parent>

1 个答案:

答案 0 :(得分:2)

使用TYPE指定子查询应返回XML。

select (select a, b, c from T1 FOR XML RAW('CAT1'), TYPE),
       (select d, e, f from T1 FOR XML RAW('CAT2'), TYPE)
for XML PATH('Parent')

TYPE Directive in FOR XML Queries