>  기사  >  데이터 베이스  >  SqlServer2005 操作XML 实战

SqlServer2005 操作XML 实战

WBOY
WBOY원래의
2016-06-07 15:13:501185검색

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


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.