我使用嵌套查询来连接聚合的行数据。我在嵌套查询中使用的语法是
for XML PATH ('')
有人可以解释上面引用之间的内容吗?我做了一些测试,看起来它只是将我的行数据包含在开始和结束HTML之类的标签中。
答案 0 :(得分:1)
我并非100%确定您的意思,但如果您的查询与以下类似,那么这可能会对您有所帮助:
SELECT R.RegionID AS [@RID],
R.Enabled AS [@Enabled],
(
SELECT ST.TypeID AS [@TID],
QT.[Name] AS [@QTName],
FROM Type ST
INNER JOIN QuarryType QT ON ST.QuarryTypeID = QT.QuarryTypeID
WHERE R.RegionID = ST.RegionID
FOR XML PATH ('QuarryType'), TYPE
)
FROM Region R
FOR XML PATH ('Region'), ELEMENTS, ROOT('root')
正如您所看到的,每个FOR XML PATH ('')
块中的文本没什么特别的,无论如何都与数据无关。它用于XML输出中的元素名称,如下所示:
<root>
<Region RID="123" Enabled="true">
<QuarryType TID="4" QTName="Quarry 1"/>
<QuarryType TID="7" QTName="Quarry 2"/>
<QuarryType TID="9" QTName="Quarry 5"/>
</Region>
</root>
如果您需要更多帮助,请询问!
答案 1 :(得分:0)
空字符串('')是一种特殊情况。你的观察是正确的,因为你放在那里的任何东西都会用你打开和关闭的XML标签围绕你的行。例如,如果你说“for xml path('a')”,它会用<a> </a>
包围你的结果。