【发布时间】:2014-01-02 10:44:14
【问题描述】:
我正在使用 SQL Server 中的 XQuery 读取 XML 文档。这是我的 XML:
declare @xml as xml='
<contactdata>
<contacts>
<groupkey>24</groupkey>
<groupname>Test Group One</groupname>
<contact>
<contactkey>100</contactkey>
<contactname>Test Contact One</contactname>
</contact>
<contact>
<contactkey>111</contactkey>
<contactname>Test Contact Two</contactname>
</contact>
</contacts>
<contacts>
<groupkey>26</groupkey>
<groupname>Test Group Two</groupname>
<contact>
<contactkey>101</contactkey>
<contactname>Test Contact Six</contactname>
</contact>
</contacts>
</contactdata>';
为了检索每个组下的每个联系人详细信息,我使用了这种 XQuery 语法
select
c.value('(groupkey)[1]','int'),
c.value('(groupname)[1]','nvarchar(max)'),
c.value('(contact/contactkey)[1]','int'),
c.value('(contact/contactname)[1]','nvarchar(max)')
from
@xml.nodes('contactdata/contacts') as Contacts(c)
但这只会返回每个组下的第一个联系人。
但我需要这个输出
请帮忙。
【问题讨论】:
标签: xml sql-server-2012 xquery xquery-sql