如何使用sql server 2005删除xml中的子元素 [英] How to remove the child element in xml using sql server 2005
本文介绍了如何使用sql server 2005删除xml中的子元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在SQL中编写一个查询来创建一个xml
In SQL im writing a query to create a xml
Select
Case When (A.Course_Fee,0)=0 then 0 else Ceiling (A.Course_Fee) end),2,1) as "ABC/DEF"
From Tab1 B inner join Tab1 A on A.Sno = B.Sno where B.Sname = 'AB'
我想删除/删除标签DEF if Course _Fee = 0
能否提供解决方案?
I want to remove/delete the tag DEF if Course_Fee = 0
Can you please provide the solution?
推荐答案
Declare @XML XML
Set @XML ='
<row>
<ABC>
<DEF>1</DEF>
</ABC>
</row>
<row>
<ABC>
<DEF>0</DEF>
</ABC>
</row>'
SELECT line.DEF.value('ABC[1]', 'Int') as ABC
FROM @XML.nodes('row') AS line(DEF)
--Where line.DEF.value('ABC[1]','Int') <>0 -- if you don't want to see 0 Un-comment it
--Output will be
--ABC
-----
--1
--0
SET @XML.modify('delete //row/ABC/DEF [.=''0'']')
--Output will be
--<row>
-- <ABC>
-- <DEF>1</DEF>
-- </ABC>
--</row>
--<row>
-- <ABC />
--</row>
SELECT line.DEF.value('ABC[1]', 'Int') as ABC
FROM @XML.nodes('row') AS line(DEF)
--Output will be
--ABC
-----
--1
--0
这篇关于如何使用sql server 2005删除xml中的子元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文