/* sql xml 入门:     --by Erichu     --http://blog.csdn.net/chinahuyong          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)

转载于:https://blog.51cto.com/yonghu/1321330

18个小实例入门SQLServer XML查询相关推荐

  1. 温度转换的python程序_Python通过小实例入门学习---1.0(温度转换)

    1.安装Python 3 下载地址: Welcome to Python.org​www.python.org 2."温度转换"实例:摄氏度--->华氏度 / 华氏度---& ...

  2. python 温度 符号_Python通过小实例入门学习---1.0(温度转换)

    1.安装Python 3 下载地址: Welcome to Python.org​www.python.org 2."温度转换"实例:摄氏度--->华氏度 / 华氏度---& ...

  3. 单片机独立式按键c语言程序,(原创)51单片机C语言程序设计--速学教程实例(入门篇)之独立按键(查询)...

    (原创)51单片机C语言程序设计--速学教程实例(入门篇)之独立按键(查询) /************************************************************ ...

  4. Jmeter Web 性能测试入门 (四):一个小实例带你学会 Jmeter 脚本编写

    测试场景: 模拟并发100个user,在TesterHome 站内搜索VV00CC 添加线程组 添加HTTP信息头管理器 添加HTTP Sampler 填写HTTP Sampler中的信息 添加监听器 ...

  5. 微信公众平台开发教程(四) 实例入门:机器人(附源码)

    微信公众平台开发教程(四) 实例入门:机器人(附源码) 上一篇文章,写了基本框架,可能很多人会觉得晕头转向,这里提供一个简单的例子来予以说明,希望能帮你解开谜团. 一.功能介绍 通过微信公众平台实现在 ...

  6. 【微信小程序】微信小程序入门与实战-个人笔记

    微信小程序入门与实战 文章目录 微信小程序入门与实战 1 初识微信小程序 1-1 2020版重录说明 1-2 下载小程序开发工具 1-3 新建小程序项目 1-4 小程序appid的注册 1-5 新版小 ...

  7. iOS中XML解析 (一) TBXML (实例:打印xml内容及存储到数组)

    关联:iOS中XML解析 (二) libxml2(实例:打印xml内容及存储到数组) 在时间上TBXML占优,libxml2支持了边下载边解析. 来源:http://www.codeios.com/f ...

  8. 微信小程序入门与实战笔记

    微信小程序 目录 微信小程序 1微信小程序介绍 1.1什么是微信小程序 1.2小程序特点 1.3对开发者的影响 1.4分辨率与rpx 1.4.1英寸 1.4.1分辨率(pt): 1.4.2分辨率(px ...

  9. 天河微信小程序入门《四》:融会贯通,form表单提交数据库

    天河在阔别了十几天之后终于又回来了.其实这篇文章里的demo是接着(天河微信小程序入门<三>)后面就做了的,但是因为最近在做别的项目,所以就偷懒没有发出来.放到今天来看,从前台提交数据到数 ...

  10. 微信小程序 - 入门篇

    微信小程序入门 文章目录 微信小程序入门 全局配置 window配置 微信组件 微信小程序与Vue 复用性 自定义Tabbar 组件的封装 路由跳转 网络低代码 本地存储 弹窗交互 weUI 全局配置 ...

最新文章

  1. 将BYTE[] 输出到edit控件中
  2. ACM OJ反馈结果大全
  3. 【C++】 C++标准模板库(八) MultiMaps
  4. html div 知识点,HTML知识点总结之div、section标签
  5. centos下使用composer安装yii2框架
  6. 相机标定的来龙去脉(详解标定原理、畸变矫正原理、使用经验)
  7. java打架游戏_初学JAVA 好玩的打架小游戏代码 -
  8. meterpreter 监控桌面命令(screenshare)
  9. 小米更新显示非官方rom_MIUI官改篇对比分析-极光ROM-台湾W大-星空未来-其他官改官网...
  10. 独家发布全能在线语言翻译工具QTranslate v6.8.0 汉化中文版
  11. WinDbg分析蓝屏dump教程
  12. 分享个PS快速替换背景颜色的方法
  13. 在编写网站的时候,给一个div设置背景图片,怎么让这个图片随着div大小的改变,而等比例的缩放。
  14. 蛋白质二级结构预测工具psipred安装使用
  15. js获取最新的省市区地址
  16. 紫薇星上的数据结构(7)
  17. STM32 CM0+系列芯片的NRST模式之坑
  18. 计算机网络思维导图(零基础--思维导图详细版本及知识点)
  19. Excel表格中行列互换的方法?
  20. php中substr函数用法,关于substr函数的详细介绍

热门文章

  1. 2021-07-14 西门子PLC编程软件--博途V14软件的安装
  2. 基于51单片机ADC0808自动数字电压表仿真数码管显示
  3. STM32工程更换芯片方法
  4. solr面试题_查看您的Solr缓存大小:Eclipse Memory Analyzer
  5. curl安装使用【超级无敌简单】
  6. 2019年win10最精简版本——win10企业2019长期服务版本下载和激活密钥
  7. 某热门单击手游lua解密.md
  8. 【转】OC门与线与逻辑(含逻辑图)
  9. 如何使用apktool反编译APK
  10. 以4%参数量比肩GPT-3!Deepmind 发布检索型 LM,或将成为 LM 发展新趋势!?