Sql server XML路径连接语法

Sql server XML路径连接语法,sql-server,sql-server-2008,tsql,Sql Server,Sql Server 2008,Tsql,我使用嵌套查询连接聚合的行数据。我在嵌套查询中使用的语法是 for XML PATH ('') 有人能解释一下上面引语之间应该是什么吗?我做了一些测试,它似乎只是将我的行数据封装在类似于HTML的开始和结束标记中。我不能100%确定您的意思,但如果您的查询类似于以下内容,则可能会对您有所帮助: SELECT R.RegionID AS [@RID], R.Enabled AS [@Enabled], ( SELECT

我使用嵌套查询连接聚合的行数据。我在嵌套查询中使用的语法是

for XML PATH ('')

有人能解释一下上面引语之间应该是什么吗?我做了一些测试,它似乎只是将我的行数据封装在类似于HTML的开始和结束标记中。

我不能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>

如果你需要更多的帮助,就问吧

空字符串(“”)是一种特殊情况。您的观察是正确的,您在行中放置的任何内容都将围绕着您在行中放置的任何内容的打开和关闭XML标记。例如,如果您说“For xml path('a')”,它将用
包围您的结果