我在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