Sql server SQL Server将XML解析为表-具有相同名称的多个节点

Sql server SQL Server将XML解析为表-具有相同名称的多个节点,sql-server,xml,parsing,Sql Server,Xml,Parsing,我想将XML解析到SQL Server 2012中的一个表中,在该表中,我的XML具有同名的节点 仅返回第一行的我的SQL查询: SELECT [date] = Node.Data.value('(date)[1]', 'NVARCHAR(MAX)'), name = Node.Data.value('(name)[1]', 'VARCHAR(MAX)') FROM @xml.nodes('result/subject') Node(Data) XML示例 &l

我想将XML解析到SQL Server 2012中的一个表中,在该表中,我的XML具有同名的节点

仅返回第一行的我的SQL查询:

SELECT
    [date] = Node.Data.value('(date)[1]', 'NVARCHAR(MAX)'),
    name = Node.Data.value('(name)[1]', 'VARCHAR(MAX)')
FROM    
    @xml.nodes('result/subject') Node(Data)
XML示例

<result>
  <subject>
    <date>2019-06-03</date>
    <name>AZGREX</name>
    <name>ABGDFC</name>
    <name>WWGDFW</name>
    <name>FDSFSD</name>
    <name>FSDWEW</name>
    <name>CXZCXZ</name>
    <name>GWGRE</name>
  </subject>
</result>
您需要使用“发件人”中的节点:

声明@XML= 2019-06-03 蓝宝石 ABGDFC WWGDFW FDSFSD FSDWEW CXZCXZ GWGRE '; 选择r.[subject]。将'date/text[1]'作为值,将'date'作为[date], s、 [name].value./text[1],[varchar6]作为[name]-显然,您可能需要更大的长度 从…起VALUES@XMLVX 交叉应用V.X.nodes的结果/主题r[主题] 交叉应用r[subject]。节点名称的[name]; 您需要使用“发件人”中的节点:

声明@XML= 2019-06-03 蓝宝石 ABGDFC WWGDFW FDSFSD FSDWEW CXZCXZ GWGRE '; 选择r.[subject]。将'date/text[1]'作为值,将'date'作为[date], s、 [name].value./text[1],[varchar6]作为[name]-显然,您可能需要更大的长度 从…起VALUES@XMLVX 交叉应用V.X.nodes的结果/主题r[主题] 交叉应用r[subject]。节点名称的[name]; 可能的重复可能的重复