Sql 基于DB列中的值命名xml节点

Sql 基于DB列中的值命名xml节点,sql,xml,Sql,Xml,目前,我有一个这样构建的xml结构 <Project> <ProjectAttribute> <AttributeId></AttributeId> <FieldName></FieldName> <Title></Title> <DisplayRow></DisplayRow> <DisplayColumn></D

目前,我有一个这样构建的xml结构

<Project>
  <ProjectAttribute>
    <AttributeId></AttributeId>
    <FieldName></FieldName>
    <Title></Title>
    <DisplayRow></DisplayRow>
    <DisplayColumn></DisplayColumn>
    <IsRequired></IsRequired>
    <RequiredErrorMessage></RequiredErrorMessage>
    <DevExpressControl>
      <DevExpressControlId></DevExpressControlId>
      <Class></Class>
      <ClientNamePrefix></ClientNamePrefix>
    </DevExpressControl>
    <DataType>
      <DataTypeId></DataTypeId>
      <Name></Name>
    </DataType>
  </ProjectAttribute>
</Project>
@OfficeId只是一个int,而@output只是xml。我在ProjectAttribute的XML路径中写入的内容就是我要替换的内容。我的问题是我如何在那里得到那个值

更新:我还是有点不知所措。我曾尝试将AttributeId和FieldName之类的内容移动到ProjectAttribute的主节点本身,但这并不能真正满足我的要求

Set @output = (
        SELECT poa.AttributeId, pa.FieldName, pa.Title, poa.DisplayRow,
            poa.DisplayColumn, poa.IsRequired, pa.RequiredErrorMessage,
            (SELECT de.DevExpressControlId, de.Class, de.ClientNamePrefix
                FROM SCC_DevExpressControl de
                WHERE de.DevExpressControlId = pa.DevExpressControlId
                FOR XML Path(''), type) AS DevExpressControl,
            (SELECT dt.DataTypeId, dt.Name
                FROM SCC_DataType dt
                WHERE dt.DataTypeId = pa.DataTypeId
                FOR XML Path(''), type) AS DataType
        FROM SCC_ProjectOfficeAttribute poa
            LEFT JOIN SCC_ProjectAttribute pa ON poa.AttributeId = pa.AttributeId
        WHERE poa.OfficeId = @OfficeId
            AND poa.Status = 1
        ORDER BY poa.DisplayRow, poa.DisplayColumn
        FOR XML Path('ProjectAttribute'), type, Root('Project'))

    select @output