XML有成千成万函数,如upper-case能够把有些值彰显或改写为大写。比如上边这几个xml类型变量中,第六行与第5行属性值是小写,现想把它显得来大写。

1 DECLARE @xml XML = ‘
2 <Devs>
3    <lang name=”VB.NET”/>
4    <lang name=”C#.NET”/>
5    <lang name=”Java” />
6    <lang name=”Javascript” />
7    <lang name=”ASP.NET” />
8 </Devs>
9 ‘;

 

先是大家演示在展现时,才改写为大写,函数语法fn:upper-case():

SELECT D.l.value(‘fn:upper-case((/Devs/lang/@name)[3])’, ‘NVARCHAR(15)’),
       D.l.value(‘fn:upper-case((/Devs/lang/@name)[4])’, ‘NVARCHAR(15)’)
FROM @xml.nodes(‘/’) D(l)  — table(column)

 

推行结果:

图片 1

 

下面就是在SELECT时改变显示结果,若是更改原值,能够参见http://www.cnblogs.com/insus/archive/2012/02/25/2367857.html xml.modify()的replace value of … with … 来修改。

SET @xml.modify(‘
                replace value of (/Devs/lang/@name)[3]
                with xs:string(fn:upper-case((/Devs/lang/@name)[3]))                
                ‘);
SET @xml.modify(‘
                replace value of (/Devs/lang/@name)[4]
                with xs:string(fn:upper-case((/Devs/lang/@name)[4]))                
                ‘);
SELECT @xml

 

结果:

图片 2

或者:

图片 3

 

相关文章

网站地图xml地图