0
我想从SQL查询中格式化一些XML输出,并且很挣扎。我目前拥有的SQL是类似这样的事情,我已经改变了表和列的名称:
SELECT *
FROM ReportTable p with (nolock)
LEFT OUTER JOIN Table1 s with (nolock) on s.UID = p.UID
LEFT OUTER JOIN Table2 o with (nolock) on o.UID = p.UID
LEFT OUTER JOIN Table3 ct with (nolock) on ct.UID = p.UID
WHERE p.UID = 1194
FOR XML AUTO, ELEMENTS
,这是给我下面的输出:
<p>
<UID>1194</UID>
<pCol1>Value</pCol1>
<pCol2>Value</pCol2>
<pCol3>Value</pCol4>
<pCol4>Value</pCol4>
<s>
<UID>1194</UID>
<sCol1>Value</sCol1>
<sCol2>Value</sCol2>
<sCol3>Value</sCol3>
<o>
<ct>
<UID>1194</UID>
<ctCol1>Value</ctCol1>
<ctCol2>Value</ctCol2>
</ct>
</o>
</s>
</p>
这是不是什么我之后,我真正需要的是这样的:
<p>
<UID>1194</UID>
<pCol1>Value</pCol1>
<pCol2>Value</pCol2>
<pCol3>Value</pCol4>
<pCol4>Value</pCol4>
<s>
<UID>1194</UID>
<sCol1>Value</sCol1>
<sCol2>Value</sCol2>
<sCol3>Value</sCol3>
</s>
<o>
</o>
<ct>
<UID>1194</UID>
<ctCol1>Value</ctCol1>
<ctCol2>1</ctCol2>
</ct>
</p>
难道只是我必须改变我的SQL所以它使用的子查询,或者有我错过了什么令人讶异明显与我的SQL的情况下?
理想情况下,该解决方案还需要适用于从2000年开始的SQL Server版本。
谢谢。