【发布时间】:2017-02-13 19:24:19
【问题描述】:
我有以下代码来生成 xml 输出。
select
[FirstName] as 'SubscriberName/FirstName',
[Middle] as 'SubscriberName/MiddleName',
LastName as 'SubscriberName/LastName',
'123 fake street' as 'Address/Address1'
from chp_work_area.dbo.Students1099hc
FOR XML PATH('SubscriberInformation'), ROOT('Test')
这个的输出是下面的xml,而且是准确的。
<Test>
<SubscriberInformation>
<SubscriberName>
<FirstName>BOB</FirstName>
<MiddleName>G</MiddleName>
<LastName>CHOI</LastName>
</SubscriberName>
<Address>
<Address1>123 fake street</Address1>
</Address>
</SubscriberInformation>
<SubscriberInformation>
<SubscriberName>
<FirstName>MOLLY</FirstName>
<MiddleName>G</MiddleName>
<LastName>MORTY</LastName>
</SubscriberName>
<Address>
<Address1>123 fake street</Address1>
</Address>
</SubscriberInformation>
</Test>
我需要的最后一部分是订阅者信息,以列出它在标签内的哪条记录,因此它的内容如下。
<Test>
<SubscriberInformation docID="Person001">
<SubscriberName>
<FirstName>BOB</FirstName>
<MiddleName>G</MiddleName>
<LastName>CHOI</LastName>
</SubscriberName>
<Address>
<Address1>123 fake street</Address1>
</Address>
</SubscriberInformation>
<SubscriberInformation docID="Person002">
<SubscriberName>
<FirstName>MOLLY</FirstName>
<MiddleName>G</MiddleName>
<LastName>MORTY</LastName>
</SubscriberName>
<Address>
<Address1>123 fake street</Address1>
</Address>
</SubscriberInformation>
</Test>
【问题讨论】:
-
使用“@docID”作为别名......你必须对它做一些工作。通过选择 [FirstName] 作为“@docID”进行测试,您就会明白我的意思了。
标签: sql sql-server xml ssms