SQL server将两个xmls合并为第三个

时间:2012-11-27 07:07:50

标签: sql-server xml xquery

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

我喜欢将两个xml变量中存在的两个xmls合并为一个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>

1 个答案:

答案 0 :(得分:4)

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')