Home  >  Article  >  Database  >  SqlServer2005 操作XML 实战

SqlServer2005 操作XML 实战

WBOY
WBOYOriginal
2016-06-07 15:13:501188browse

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 '%音频%'


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn