- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章SQLServer XML查询18句话入门教程由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
代码如下
/*01. 02.sql xml 入门: 03. --by jinjazz 04. --http://blog.csdn.net/jinjazz 05. 06. 1、xml: 能认识元素、属性和值 07. 08. 2、xpath: 寻址语言,类似windows目录的查找(没用过dir命令的话就去面壁) 09. 10. 语法格式,这些语法可以组合为条件: 11. "."表示自己,".."表示父亲,"/"表示儿子,"//"表示后代, 12. "name"表示按名字查找,"@name"表示按属性查找 13. 14. "集合[条件]" 表示根据条件取集合的子集,条件可以是 15. 数 值:数字,last(),last()-数字 等 16. 布尔值:position()<数字,@name='条件',name='条件' 17. 条件是布尔值的时候可以合并计算:and or 18. 19. 3、xquery: 基于xpath标的准查询语言,sqlserver xquery包含如下函数 20. exist(xpath条件):返回布尔值表示节点是否存在 21. query(xpath条件):返回由符合条件的节点组成的新的xml文档 22. value(xpath条件,数据类型):返回指定的标量值,xpath条件结果必须唯一 23. nodes(xpath条件): 返回由符合条件的节点组成的一行一列的结果表 24.*/ 。
。
复制代码代码如下
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、等价于12 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、获取第一本书的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) 。
最后此篇关于SQLServer XML查询18句话入门教程的文章就讲到这里了,如果你想了解更多关于SQLServer XML查询18句话入门教程的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
在我的 Windows 类库(由 MVC 网站使用)中,我安装了 NugetPackage Microsoft.SqlServer.Types (Spatial)。 现在,我正在使用 ado.net
测试sql: 复制代码代码如下: SET STATISTICS IO ON SET STATISTICS TIME ON SELECT COUNT(1)&n
我正在从 SqlConnection 构建 DbContext。当我使用它时,我收到以下错误: The Entity Framework provider type 'System.Data.Enti
我使用dotNet 4.5创建了WCF服务。数据库层是使用Entity Framework 6构建的。 我使用IIS 8托管了该服务。它运行正常。 现在,我需要使用Windows窗体客户端使用该服务,
我正在尝试从 SqlServer 1 上的 sql 数据库中导出一些表。在我们的内部网 LAN(就在我旁边)中有一个我制作的临时 Sql Server,称为 SqlServer 2。 我不想备份整个数
Error 1 Copying file bin\EntityFramework.SqlServer.xml to obj\Debug\Package\PackageTmp\bin\Entit
我正在尝试使用 SMO 通过 Powershell 恢复数据库,但是当我尝试定义和使用服务器对象时,出现以下错误: Cannot convert argument "srv", with value:
出于某种原因,我需要将我的表列之一从“NOT NULL”更新为“NULL”。命令很简单: ALTER TABLE TBLOGDOCMESSAGE ALTER COLUMN PROCESSID BIGI
我想知道我正在尝试做的事情是否可行。我相信它是在 TSQL 中使用 PIVOT 函数,但对 PIVOT 函数没有足够的经验来知道从哪里开始。 基本上,我正在尝试采用以下名为 #tmpbudgetdat
我正在尝试将子查询作为带有条件的列。 我从 SQL Server 得到的错误是: 子查询返回了 1 个以上的值。当子查询跟随 =、!=、、>= 或当子查询用作表达式时,这是不允许的。 我正在选择更多的
我有一个正在查询的 SQL 服务器数据库,我只想在特定行为空时获取信息。我使用了一个 where 语句,例如: WHERE database.foobar = NULL 它不返回任何东西。但是,我知道
1、拼接字符串(整个字符串不分割)步骤: 首先在字符串的前后加单引号; 字符串中的变量以'''+@para+'''在字符串中表示; 若在执行时存在类型转换错误,则应用相应的类型
说明: 收缩日志的原因有很多种,有些是考虑空间不足,有些则是应用程序限制导致的。 ?
Rand()函数是系统自带的获取随机数的函数,可以直接运行select rand() 获取0~1之间的float型的数字。 如果想要获取0~100之间的整数随机数,可以这样使用 select ro
将以下内容保存为 openSql.bat 双击运行即可 复制代码 代码如下: @echo ========= SQL Server Ports =================== @ech
新增的APPLY表运算符把右表表达式应用到左表表达式中的每一行。它不像JOIN那样先计算那个表表达式都可以,APPLY必选先逻辑地计算左表达式。这种计算输入的逻辑顺序允许吧右表达式关联到左表表达式。
SQL Server本身提供了这么一个DMV来返回这些信息,它就是sys.dm_exec_sessions 。 比如在我的机器上做一下查询: 复制代码 代码如下: SELECT * FROM
尽管从技术上讲,其它排名函数的计算与ROW_NUMBER类似,但它们的的实际应用却少很多。RANK和DENSE——RANK主要用于排名和积分。NTILE更多地用于分析。 先创建一个示例表: 复制
1、文件和文件组的含义与关系 每个数据库有一个主数据文件.和若干个从文件。文件是数据库的物理体现。 文件组可以包括分布在多个逻辑分区的文件,实现负载平衡。文件组允许对文件进行分组,以便于管理和数据的
我想很多人都知道,在oracle里面,存储过程里面可以传入数组(如int[]),也就是说,可以传多条记录到数据,从而一起更新。减少数据库的请求次数。 但SqlServer呢?bulk Insert这
我是一名优秀的程序员,十分优秀!