当前位置:首页 > 系统运维 > 正文内容

SQL Server XML 入门的18句话

a8116255316年前 (2010-07-14)系统运维9

以下的文章主要描述的是SQL Server XML 入门的18句话,假如你对SQL Server XML 入门的18句话有兴趣的话,你就可以对以下的文章点击观看了,以下就是文章的详细内容介绍,望大家借鉴。

sql xml 入门:

1、xml: 能认识元素、属性和值

2、SQL Server xpath: 寻址语言,类似windows目录的查找(没用过dir命令的话就去面壁)

语法格式,这些语法可以组合为条件:

"."表示自己,".."表示父亲,"/"表示儿子,"//"表示后代,

"name"表示按名字查找,"@name"表示按属性查找

" *** [条件]" 表示根据条件取 *** 的子集,条件可以是

数 值:数字,last(),last()-数字 等

布尔值:position()<数字,@name='条件',name='条件'

条件是布尔值的时候可以合并计算:and or

3、xquery: 基于xpath标的准查询语言,SQL Server xquery包含如下函数

exist(xpath条件):返回布尔值表示节点是否存在

query(xpath条件):返回由符合条件的节点组成的新的SQL Server xml文档

value(xpath条件,数据类型):返回指定的标量值,xpath条件结果必须唯一

nodes(xpath条件): 返回由符合条件的节点组成的一行一列的结果表

declare @ data xml   set @ data = '   <bookstore>   <book category="COOKING">   <title lang="en">Everyday Italian</title>   <author>Giada De Laurentiis</author>   <year>2005</year>   <price>30.00</price>   </book>   <book category="CHILDREN">   <title lang="jp">Harry Potter</title>   <author>J K. Rowling</author>   <year>2005</year>   <price>29.99</price>   </book>   <book category="WEB">   <title lang="en">XQuery Kick Start</title>   <author>James McGovern</author>   <author>Per Bothner</author>   <author>Kurt Cagle</author>   <author>James Linn</author>   <author>VAIdyanathan Nagarajan</author>   <year>2003</year>   <price>49.99</price>   </book>   <book category="WEB">   <title lang="cn">Learning XML</title>   <author>Erik T. Ray</author>   <year>2003</year>   <price>39.95</price>   </book>   </bookstore>   '  

测试语句,假如不理解语法请参考上面的xpath规则和xquery函数说明

1、文档

select @ data

2、任意级别是否存在price节点

select @ data . exist ('//price' )

3、获取所有book节点

select @ data . query ('//book' )

4、获取所有包含lang属性的节点

select @ data . query ('//*[@lang]' )

5、获取之一个book节点

select @ data . query ('//book[1]' )

6、获取前两个book节点

select @ data . query ('//book[position()<=2]' )

7、获取最后一个book节点

select @ data . query ('//book[last()]' )

8、获取price>35的所有book节点

select @ data . query ('//book[price>35]' )

9、获取category="WEB"的所有book节点

select @ data . query ('//book[@category="WEB"]' )

10、获取title的lang="en"的所有book节点

select @ data . query ('//book/title[@lang="en"]' )

11、获取title的lang="en"且 price>35的所有book节点

select @ data . query ('//book[./title[@lang="en"] or price>35 ]' )

12、获取title的lang="en"且 price>35的之一book的(之一个)title

select @ data . query ('//book[./title[@lang="en"] and price>35 ]' ). value ('(book/title)[1]' , 'varchar(max)' )

13、等价于10

select @ data . value ('(//book[./title[@lang="en"] and price>35 ]/title)[1]' , 'varchar(max)' )

14、获取title的lang="en"且 price>35的之一book的(之一个)title的lang属性

select @ data . value ('((//book[@category="WEB" and price>35 ]/title)[1]/@lang)[1]' , 'varchar(max)' )

15、SQL Server XML中获取之一本书的title

select Tab . Col . value ('(book/title)[1]' , 'varchar(max)' ) as title

from @ data . nodes ('bookstore' )as Tab (Col )

16、获取每本书的之一个author

select Tab . Col . value ('author[1]' , 'varchar(max)' ) as title

from @ data . nodes ('//book' )as Tab (Col )

17、获取所有book的所有信息

select   T . C . value ('title[1]' , 'varchar(max)' ) as title ,   T . C . value ('year[1]' , 'int' ) as year ,   T . C . value ('title[1]' , 'varchar(max)' )as title ,   T . C . value ('price[1]' , 'float' ) as price ,   T . C . value ('author[1]' , 'varchar(max)' ) as author1 ,   T . C . value ('author[2]' , 'varchar(max)' ) as author2 ,   T . C . value ('author[3]' , 'varchar(max)' ) as author3 ,   T . C . value ('author[4]' , 'varchar(max)' ) as author4   from @ data . nodes ('//book' ) as T (C ) 

18、获取不是日语(lang!="jp")且价格大于35的书的所有信息

select

T . C . value ('title[1]' , 'varchar(max)' ) as title ,   T . C . value ('year[1]' , 'int' ) as year ,   T . C . value ('title[1]' , 'varchar(max)' )as title ,   T . C . value ('price[1]' , 'float' ) as price ,   T . C . value ('author[1]' , 'varchar(max)' ) as author1 ,   T . C . value ('author[2]' , 'varchar(max)' ) as author2 ,   T . C . value ('author[3]' , 'varchar(max)' ) as author3 ,   T . C . value ('author[4]' , 'varchar(max)' ) as author4   from @ data . nodes ('//book[./title[@lang!="jp"] and price>35 ]' ) as T (C ) 

以上的相关内容就是对18句话入门SQL Server XML的介绍,望你能有所收获。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://www.2345hao.cn/blog/index.php/post/21965.html

分享给朋友:

“SQL Server XML 入门的18句话” 的相关文章

上帝不止一个 更多Windows7 快捷模式.

上帝不止一个 更多Windows7 快捷模式.

国外媒体CNET NEWS就这个“上帝模式”和微软Windows部门主管Steven Sinofsky进行邮件交流后得知,这其实只是众多快捷方式中的一个,Sinofsky在邮件里给出了十多个这类快捷方式的关键字符串。 它们的建立方法和之前的“上帝模式”一样,在任意位置新建的一个文件夹,然后改名即可...

解决windows 7无法将程序锁定到任务栏或附到开始菜单的方法

解决windows 7无法将程序锁定到任务栏或附到开始菜单的方法

出现该问题的原因是由于使用第三方优化软件消除快捷方式的小箭头引起的。 1、在开始搜索框中键入“regedit”,按回车键打开注册表编辑器。 2、依次定位到以下分支:HKEY_CLASSES_ROOTlnkfile。 3、在lnkfile项上鼠标右键单击“新建”——“字符串值”。...

Windows7播放电影视频蓝屏无论什么格式都会蓝屏

Windows7播放电影视频蓝屏无论什么格式都会蓝屏

问:我在Windows 7 Ultimate X64下播放电影视频时,不管什么格式都会蓝屏,错误代码“0x00000124”。换解码器、播放器不行,换驱动、内存也不管用。在不同的电脑上也试过,仍然蓝屏。请问是哪里的问题,如何解决 答:64位 Windows 7直接使用PotPlayer x64就...

微软为windows 7用户重新发布补丁KB2952664 帮助提升Win10升级体

微软为windows 7用户重新发布补丁KB2952664 帮助提升Win10升级体

1月13日消息,微软今天为Windows 7(SP1)用户重新推送了编号为KB2952664的更新补丁,该更新在官方KB知识库中的描述为“Windows 7系统升级兼容性更新”,用于帮助微软改进当前版本系统,提升升级到最新版Win10系统的体验。 这项更新还用于在系统中显示Windows10更新提...

Ubuntu 14.04安装Wine以便使用Windows应用

Ubuntu 14.04安装Wine以便使用Windows应用

假如你想要在Ubuntu上使用Windows应用,就需要用到Wine了,除了支持Linux系统外,Wine还可运行于其他系统,是个非常使用的软件,下面小编就以Ubuntu 14.04为例,给大家介绍下Ubuntu 14.04安装Wine的步骤。 Ubuntu 14.04安装Wine的步骤 1...

在Ubuntu中如何安装Mapnik工具包以便开发Gis应用程序

在Ubuntu中如何安装Mapnik工具包以便开发Gis应用程序

Ubuntu系统操作中,因为开发Gis应用程序的需要,要在Ubuntu系统中安装Mapnik工具包,那么要如何安装Mapnik工具包呢?下面小编就给大家介绍下Ubuntu安装Mapnik工具包的步骤,感兴趣的朋友可以来了解下。 卸载旧的: sudo apt-get purge libmapn...