`
ivy1107
  • 浏览: 15587 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

18句话入门SQLServer XML查询

阅读更多
/*
sql xml 入门:
    --by jinjazz
    --http://blog.csdn.net/jinjazz
    
    1、xml:        能认识元素、属性和值
    
    2、xpath:    寻址语言,类似windows目录的查找(没用过dir命令的话就去面壁)
                
                语法格式,这些语法可以组合为条件:
                "."表示自己,".."表示父亲,"/"表示儿子,"//"表示后代,
                "name"表示按名字查找,"@name"表示按属性查找
                
                "集合[条件]" 表示根据条件取集合的子集,条件可以是
                    数  值:数字,last(),last()-数字 等
                    布尔值:position()<数字,@name='条件',name='条件'
                条件是布尔值的时候可以合并计算:and or
    
    3、xquery:    基于xpath标的准查询语言,sqlserver xquery包含如下函数
                exist(xpath条件):返回布尔值表示节点是否存在
                query(xpath条件):返回由符合条件的节点组成的新的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、等价于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)


转摘:http://topic.csdn.net/u/20090813/17/06951CF3-CD2C-4509-AC0B-9B3BED28EA57.html
分享到:
评论

相关推荐

    18句话入门SQLServer XML查询[发个总结贴]

    18句话入门SQLServer XML查询[发个总结贴].mht

    18句话入门sqlserver xml

    SQL Server 提供了一系列功能来处理 XML 数据,包括通过 XPath 查询 XML、提取 XML 的部分值等。 ### SQL Server XML处理的关键语法 #### 1. 基本XML声明与赋值 在 SQL Server 中,可以使用 DECLARE 语句来声明 ...

    提高sql server xml 字段的查询速度

    提高sql server xml字段的查询速度的几种方法,其中使用索引关键字方法在模糊查询中相当实用。

    SQL Server中读取XML文件的简单做法

    在SQL Server中,读取XML文件并对其进行处理是数据库管理员和开发者经常遇到的任务。XML作为一种通用的数据交换格式,被广泛用于存储和传输结构化数据。然而,在SQL Server 2000中,处理XML文件并不像导出数据那样...

    40集SQL Server 基础入门视频教程 SQL Server 数据库基础入门必备课程

    18.SQL Server 2014子查询EXISTS.mp4 19.SQL Server 2014返回记录排序.mp4 2.SQL Server 2014硬件和软件要求.mp4 20.SQL Server 2014关联查询.mp4 21.SQL Server 2014聚合函数AVG() SUM().mp4 22.SQL Server ...

    SQLServer20052008 XML数据类型操作

    根据给定的文件标题、描述、标签以及部分内容,本文将详细介绍如何在SQL Server 2005 和 2008 中操作XML数据类型,并简要介绍与之相关的C# XML操作方法。 ### 一、SQL Server 2005/2008 XML 数据类型操作 #### 1. ...

    Pro SQL Server 2008 XML 数据库

    《Pro SQL Server 2008 XML》是针对SQL Server 2008数据库系统的一本高级教程,主要聚焦于XML在SQL Server中的应用。XML(eXtensible Markup Language)是一种广泛使用的标记语言,它允许数据以结构化的方式进行存储...

    OpenXML文档,sqlserver处理XML,可用于存储过程数组传参

    总结,OpenXML 是 SQL Server 处理 XML 数据的强大工具,它允许开发者灵活地将 XML 文档转换为关系型数据,方便在 SQL Server 中进行查询、更新和存储。尽管现代的 SQL Server 版本推荐使用 XQuery 和 FOR XML 来...

    SQLServer的内置XML支持

    在SQLServer中,内置的XML支持是数据库管理系统的一项强大特性,它允许用户存储、查询、处理和传输XML数据。XML(eXtensible Markup Language)作为一种标准的数据交换格式,广泛应用于不同系统之间的数据交互和复杂...

    SQL Server 2014基础入门视频教程 (40集,含课件)

    18.SQL Server 2014子查询EXISTS.mp4 19.SQL Server 2014返回记录排序.mp4 20.SQL Server 2014关联查询.mp4 21.SQL Server 2014聚合函数AVG() SUM().mp4 22.SQL Server 2014聚合函数MIN() MAX().mp4 23.SQL ...

    从sqlserver生成XML

    SQL Server作为一款广泛应用的关系型数据库管理系统,提供了丰富的功能,其中之一就是能够生成XML格式的数据,这在数据迁移、报表生成、Web服务等场景中非常实用。本篇文章将详细介绍如何在VB(Visual Basic)环境中...

    SQL Server 2005 对Native XML Web 服务的支持

    其次,SQL Server 2005提供了一个强大的XQuery引擎,允许用户通过SQL查询语言执行XQuery表达式来检索和处理XML数据。XQuery是一种标准化的查询语言,专门用于处理XML数据,它的引入大大简化了在SQL Server中处理XML...

    XML导入SQLServer

    XML导入SQLServer工具,配置简单,支持大批量导入到SQLServer。

    XML读取 SQL Server

    根据提供的文件信息,我们可以深入探讨如何使用C#与SQL Server结合来实现XML数据的读取与写入。这里的关键在于理解如何通过ADO.NET框架来连接SQL Server数据库,并从中获取数据,然后将这些数据以XML格式进行存储和...

    SQL Server XML and Web Application Architecture

    工作在任何基于SQL Server XML和Web应用架构的背景下:逻辑架构和物理架构。逻辑架构主要关注应用程序的设计和功能,而物理架构则涉及其实现和部署的技术细节。 在Duwamish Books, Phase 4和Duwamish Online这两个...

    《SQL Server从入门到精通》.(明日科技 ).pdf 扫描 完整版(SQL Server 2008)

    《SQL Server从入门到精通》是一本专门为初学者和进阶者设计的全面教程,旨在帮助读者掌握SQL Server 2008的核心概念和技术。这本书由明日科技编写,提供了扫描的完整版,使得读者可以方便地在线查阅或下载学习。 ...

    SQL Server 从入门到精通-pdf

    SQL Server 从入门到精通-pdf

    SQL Server 2005 XML应用开发.iso

    SQL Server 2005 XML应用开发.isoSQL Server 2005 XML应用开发.iso

Global site tag (gtag.js) - Google Analytics