我使用嵌套查询来连接聚合的行数据。我在嵌套查询中使用的语法是XML PATH连接语法
for XML PATH ('')
有人可以解释什么是应该在上面的引号之间?我做了一些测试,看起来它只是将我的行数据封装在开始和结束HTML(如标签)中。
我使用嵌套查询来连接聚合的行数据。我在嵌套查询中使用的语法是XML PATH连接语法
for XML PATH ('')
有人可以解释什么是应该在上面的引号之间?我做了一些测试,看起来它只是将我的行数据封装在开始和结束HTML(如标签)中。
空字符串('')是一种特殊情况。你的观察是正确的,因为无论你放在哪里,都会用你打开和关闭的XML标签来包围你的行。例如,如果你说“for xml path('a')”,它将用<a> </a>
包围你的结果。
我不是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')
正如你可以看到每个块文字是没有什么特别的,无论如何与数据无关。它用于元素名称在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>
如果您需要更多的帮助,只问!