您好,欢迎访问一九零五行业门户网

SqlServer2005 操作XML 实战

xml 大兴其道。文件越来越大。在sqlserver中查询检索,会使工作得心应手。 常用sql: 1. 提取关心数据。以表行的形式列出。要注意的是。xquery在解析 xml 文档里,无素内容是和关键字是区分大小写的。 create table #t(id int ,xmxml) insert into #t(id,xm)
xml 大兴其道。文件越来越大。在sqlserver中查询检索,会使工作得心应手。
常用sql:
1. 提取关心数据。以表行的形式列出。要注意的是。xquery在解析 xml 文档里,无素内容是和关键字是区分大小写的。
create table #t (id int ,xm xml)
insert into #t(id,xm)
select 1 , * from openrowset( bulk 'd:\program files\stormii\config.xml', single_blob ) as x
--只关心 其他视频/音频文件
insert into #t(id,xm)
select 2,xm.query('for $f in /config/association/type[@category=其他视频/音频文件] return $f') as result from #t
declare @x xml
select @x=xm from #t where id = 2 
insert into #t select 3,t.c.query('.')from @x.nodes('/type/item') t(c)
select xm.value('(/item/@format)[1]','varchar(30)' ) as format ,xm.value('(/item/@description)[1]','varchar(30)' ) as description
from #t where id = 3
go
2.xml中的查询。既然已经查出了表的结果集,就可以按表来操作,进行查询。如:查询 其它视频/音频文件 中包含音频的。
  select xm.value('(/item/@format)[1]','varchar(30)' ) as format ,xm.value('(/item/@description)[1]','varchar(30)' ) as description
from #t where id = 3 
and xm.value('(/item/@description)[1]','varchar(30)' )  like '%音频%'
其它类似信息

推荐信息