Heim  >  Artikel  >  Datenbank  >  SqlServer2005 操作XML 实战

SqlServer2005 操作XML 实战

WBOY
WBOYOriginal
2016-06-07 15:13:501190Durchsuche

XML 大兴其道。文件越来越大。在SqlServer中查询检索,会使工作得心应手。 常用SQL: 1. 提取关心数据。以表行的形式列出。要注意的是。Xquery在解析 XML 文档里,无素内容是和关键字是区分大小写的。 create table #t(id int ,xmxml) insert into #t(id,xm)

XML 大兴其道。文件越来越大。在SqlServer中查询检索,会使工作得心应手。

常用SQL:

1. 提取关心数据。以表行的形式列出。要注意的是。Xquery在解析 XML 文档里,无素内容是和关键字是区分大小写的。

SqlServer2005 操作XML 实战create table #t (id int ,xm xml)
SqlServer2005 操作XML 实战
insert into #t(id,xm)
SqlServer2005 操作XML 实战
select 1 , * from OpenRowSetBulk 'D:\Program Files\StormII\config.xml', Single_Blob ) as x
SqlServer2005 操作XML 实战
--只关心 其他视频/音频文件
SqlServer2005 操作XML 实战
insert into #t(id,xm)
SqlServer2005 操作XML 实战
select 2,xm.query('for $f in /config/association/type[@category="其他视频/音频文件"] return $f'as result from #t
SqlServer2005 操作XML 实战
SqlServer2005 操作XML 实战
declare @x xml
SqlServer2005 操作XML 实战
select @x=xm from #t where id = 2 
SqlServer2005 操作XML 实战
insert into #t select 3,t.c.query('.')from @x.nodes('/type/item') t(c)
SqlServer2005 操作XML 实战
SqlServer2005 操作XML 实战
select xm.value('(/item/@format)[1]','varchar(30)' ) as format ,xm.value('(/item/@description)[1]','varchar(30)' ) as description
SqlServer2005 操作XML 实战
from #t where id = 3 
SqlServer2005 操作XML 实战
SqlServer2005 操作XML 实战
go
SqlServer2005 操作XML 实战


2.XML中的查询。既然已经查出了表的结果集,就可以按表来操作,进行查询。如:查询 其它视频/音频文件 中包含音频的。
 

SqlServer2005 操作XML 实战select xm.value('(/item/@format)[1]','varchar(30)' ) as format ,xm.value('(/item/@description)[1]','varchar(30)' ) as description
SqlServer2005 操作XML 实战
from #t where id = 3 
SqlServer2005 操作XML 实战
and xm.value('(/item/@description)[1]','varchar(30)' )  like '%音频%'


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn