SQL Server 将两个 xml 合并为第三个



我在SQL Server 2008工作。我在两个 xml 变量中有 xml 显式查询的输出。我的 SP 必须将两个 xml 组合成一个格式良好的第三个 xml。下图给出了说明。不涉及复杂的处理。

我喜欢将两个 xml 变量中存在的两个 xml 合并为一个 xml

假设第一个 XML (@x)

<Student>
<Name>Lawy</Name>
<class>form1</class>
</Student>
<Student>
<Name>Vina</Name>
<class>form2</class>
</Student>

第二个 XML (@y)

<Dept>
<DeptName>Social</DeptName>
<centre>AOS</centre>
</Dept>
<Dept>
<DeptName>Bio</DeptName>
<centre>RJS</centre>
</Dept>

我想要的结果是(@z)

<sp>
  <Student>
   <Name>Lawy</Name>
   <class>form1</class>
  </Student>
  <Student>
   <Name>Vina</Name>
   <class>form2</class>
  </Student>
  <Dept>
   <DeptName>Social</DeptName>
   <centre>AOS</centre>
  </Dept>
  <Dept>
   <DeptName>Bio</DeptName>
   <centre>RJS</centre>
  </Dept>
</sp>
declare @x xml
declare @y xml
select @x = '<Student>
<Name>Lawy</Name>
<class>form1</class>
</Student>
<Student>
<Name>Vina</Name>
<class>form2</class>
</Student>'
select @y = '<Dept>
<DeptName>Social</DeptName>
<centre>AOS</centre>
</Dept>
<Dept>
<DeptName>Bio</DeptName>
<centre>RJS</centre>
</Dept>'
select @x, @y for xml path('sp')

更新:如果 SP 中需要属性,可以执行此操作

select 2 as [@id], @x, @y for xml path('sp')

最新更新