我在MyTable的表行:我如何使用SQL和列值转换为XML元素名称FOR XML
MessageID EMailAddress DisplayName RecipientType
1 [email protected] Joe To
1, [email protected] Max From
1, [email protected] NULL To
1, [email protected] Secret Bcc
我试图将其转换为XML,看起来像下面这样:
<to>
<displayName>Joe</displayName>
<address>[email protected]</address>
</to>
<from>
<displayName>Bob</displayName>
<address>[email protected]</address>
</from>
<to>
<address>[email protected]</address>
</to>
<bcc>
<displayName>Secret</displayName>
<address>[email protected]</address>
</bcc>
我很接近,但无法弄清楚如何将RecipientType转换成父元素的另外两列
SELECT
a.EmailAddress as address,
a.DisplayName as displayName
FROM MyTable a
WHERE a.Id = 1
FOR XML PATH('address'), TYPE
有没有办法让“FOR XML PATH('address')”成为RecipientType而不是硬编码的'地址'?还是有另一种选择?
我也试过玩过PIVOT,但它似乎没有帮助。
我知道我可以使用动态SQL,但我试图远离那个。
我最终没有使用Pivot,但是这回答了我的问题。谢谢! – Jay 2013-04-15 12:10:18