求SQL中XML合并处理

拔火罐复合弓 2009-10-01 02:13:43
求高手指点一下。
如何在SQL SERVER 2005中处理以下XML

XML内容如下
<item>
<id>1</id>
<title>姓名</title>
<value></value>
</item>
<item>
<id>2</id>
<title>年龄</title>
<value></value>
</item>

我要通过另一个XML文档去设定这个XML文档内的VALUE
另一XML内容如下
<item>
<id>1</id>
<value>张三</value>
</item>
<item>
<id>2</id>
<value>20</value>
</item>
或者
<item id=1 value="张三"></item><item id=2 value="20"></item>


要求的结果是

<item>
<id>1</id>
<title>姓名</title>
<value>张三</value>
</item>
<item>
<id>2</id>
<title>年龄</title>
<value>20</value>
</item>
...全文
217 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanshanhezhiyong 2010-08-16
  • 打赏
  • 举报
回复
study
s_111111 2010-08-06
  • 打赏
  • 举报
回复
回去測試下,學習
hanxue168 2010-08-04
  • 打赏
  • 举报
回复
学习一下!
w3274666197 2010-03-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 happyflystone 的回复:]

SQL code
declare @x xml,@y xml
set @x='<item>
<id>1 </id>
<title>姓名 </title>
<value> </value>
</item>
<item>
<id>2 </id>
<title>年龄 </title>
<value> </value>
</item>
'
set @y='<item>
<id>1……
[/Quote] 恩 不错 学习了
boboo_2000_0 2009-12-29
  • 打赏
  • 举报
回复
先顶一下,然后运行一下楼上的sql,顺便学习。
-狙击手- 2009-10-01
  • 打赏
  • 举报
回复
declare @x xml,@y xml
set @x='<item>
<id>1 </id>
<title>姓名 </title>
<value> </value>
</item>
<item>
<id>2 </id>
<title>年龄 </title>
<value> </value>
</item>
'
set @y='<item>
<id>1 </id>
<value>张三 </value>
</item>
<item>
<id>2 </id>
<value>20 </value>
</item>
'
;with t1
as(
select
D.x.value('./id[1]','int') AS id,
D.x.value('./title[1]','nvarchar(100)') AS title,
D.x.value('./value[1]','nvarchar(100)') AS [value]
from @x.nodes('/*') as D(x)),
t2
as(
select
D.x.value('./id[1]','int') AS id,
D.x.value('./value[1]','nvarchar(100)') AS [value]
from @y.nodes('/*') as D(x))
select a.id,title,b.[value]
from t1 as a
left join t2 as b on a.id = b.id
for xml path('item')

/*
<item>
<id>1</id>
<title>姓名 </title>
<value>张三 </value>
</item>
<item>
<id>2</id>
<title>年龄 </title>
<value>20 </value>
</item>
*/

6,129

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 新技术前沿
社区管理员
  • 新技术前沿社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧