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