DECLARE @DOC XML ='
<books>
<book category="C#"> 
  <title language="en">C# in Depth</title> 
  <author>John Skeet</author> 
  <year>2010</year> 
  <price>62.30</price> 
</book> 
<book category="C#"> 
  <title language="cn">Effective C#</title> 
  <author>Bill Wagner</author> 
  <year>2010</year> 
  <price>49.00</price> 
</book>
<book category="MSSQL"> 
  <title language="cn">SQL2008 技术内幕</title> 
  <author>Itzik Ben-Gan</author> 
  <year>2010</year> 
  <price>90.20</price> 
</book>
<book category="javascipt">
<title language="cn">JavaScript权威指南</title>
<author>David Flanagan</author>
<year>2007</year> 
<price>87.20</price>
</book>
</books>
';
--查询所有书籍的分类
SELECT 
     T.C.value('@category','VARCHAR(16)')
FROM @DOC.nodes('/books/book') AS T (C);
--查询所有C#书籍的名称,作者,价格,年份
WITH B AS
(
    SELECT @DOC.query('//book[@category="C#"]') AS BookNode
)
SELECT 
    T.C.value('title[1]/@language','VARCHAR(32)') AS [language],
    T.C.value('title[1]','VARCHAR(32)') AS title,
    T.C.value('author[1]','VARCHAR(16)') AS author,
    T.C.value('year[1]','INT') AS [year],
    T.C.value('price[1]','DECIMAL(19,2)') AS price
FROM B
CROSS APPLY B.BookNode.nodes('/book') AS T (C);
--查询所有书籍的语言和名称
SELECT 
    T.C.value('@language[1]','varchar(56)') AS [Language],
    T.C.value('.','VARCHAR(56)') AS TITLE
FROM @DOC.nodes('/books/book/title') AS T (C);

sqlserver中xml查询的更多相关文章

  1. SQL SERVER中XML查询:FOR XML指定PATH

    SQL SERVER中XML查询:FOR XML指定PATH 前言 在SQL SERVER中,XML查询能够指定RAW,AUTO,EXPLICIT,PATH.本文用一些实例介绍SQL SERVER中指 ...

  2. sqlserver中怎么查询字段为空的记录

    sqlserver中怎么查询字段为空的记录的两种方法: 详细介绍请查看全文:https://cnblogs.com/qianzf/ 原文博客的链接地址:https://cnblogs.com/qzf/

  3. SqlServer中的查询简单总结

    一.sql语句的执行顺序 查询时数据库中使用最多的操作,一条sql语句的查询顺序是 1.from Tb1 [ join on ]   得到查询的数据源 2.where    对数据过滤(单条数据上过滤 ...

  4. SqlServer中循环查询结果集

    ); begin ; open c_test_main;--打开游标 --开始循环 begin fetch next from c_test_main into @id,@value; --赋值到变量 ...

  5. XML 在SQLServer中的使用

    SQL Server对于XML支持的核心在于XML数据的格式,这种数据类型可以将XML的数据存储于数据库的对象中,比如variables, columns, and parameters.当你用XML ...

  6. SQLServer中查询的数字列前面补0返回指定长度的字符串

    SQLServer中查询的数字列前面补0返回指定长度的字符串: 如: 角本如下: /****** Script for SelectTopNRows command from SSMS ******/ ...

  7. Oracle&SQLServer中实现跨库查询

    一.在SQLServer中连接另一个SQLServer库数据 在SQL中,要想在本地库中查询另一个数据库中的数据表时,可以创建一个链接服务器: EXEC master.dbo.sp_addlinked ...

  8. hibernate mapping文件中 xmlns会导致linq to xml 查询不到对应的节点

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  9. XXXMapper.xml中嵌套查询

    XXXMapper.xml中嵌套查询 <resultMap id="LiveUserNocticeMap" type="com.fxkj.common.vo.Liv ...

随机推荐

  1. REX-Ray 了解

    REX-Ray 是一个 EMC {code} 团队领导的开源项目,为 Docker.Mesos 及其他容器运行环境提供持续的存储访问.其设计旨在囊括通用存储.虚拟化和云平台,提供高级的存储功能. 当前 ...

  2. Cucumber 使用例子

    1. junit 配置 @RunWith(Cucumber.class) @CucumberOptions(format ={"pretty","html:target/ ...

  3. ThinkPHP5 为什么取消了单字母函数?

    ThinkPHP5 为什么取消了单字母函数? 更容易理解. 理加规范. 个人喜好. 比如 TPShop 也是用 ThinkPHP5 又加回单字母函数. [话唠]教练,我想做菜-长沙 2018/10/8 ...

  4. 什么是spark(一) 分区以及和MR的区别

    什么是spark,是一个分布式计算平台,或者说是分布式计算引擎,他的职责就是将指定的数据读入到各个node的内存中,然后计算.所以spark是具有泛化性质的,只要数据源是可读入的,读到内存里面之后,处 ...

  5. JavaFX 之自定义窗口标题栏(二)

    一.问题场景 PC客户端登录界面仿QQ,上边显示图片,下边显示输入框和登录按钮.而JavaFX默认的窗口,不满足需求. 二.解决思路 隐藏窗口默认的标题栏,使用创建label对象,使用css将按钮图片 ...

  6. Servlet的复习

    Servlet概述 在JavaWeb阶段,使用Servlet是很经常的是事情,Servlet作为MVC中控制器(C)的存在,是不可缺少的一部分.当然Servlet作为JavaWeb的三大组件之一(其他 ...

  7. Python代码审计中一些需要重点关注的项

    SQL注入: 如果是常规没有进行预编译,或者直接使用原生的进行拼凑,那么在view的时候就需要多去观察了 [PythonSQL预编译]https://www.cnblogs.com/sevck/p/6 ...

  8. supervisor+uwsgi+django遇到writing to a closed pipe/socket/fd解决

    原因: 最近开发的一个项目,由于有个更新job需要消耗的时间非常长,一度以为更新出现了错误. 经过: 于是打开debug模式测试, 异常开启,调试发现system返回了 writing to a cl ...

  9. histroy.back和histroy.go的区别

    histroy.back(-1):直接返回当前页的上一页,数据全部消失,是个新的页面: histroy.go(-1):直接返回当前页的上一页,不过表单里的数据全部还在: histroy.back(0) ...

  10. 常见的HTTP Header

    文件信息: Content-Type: application/x-javascript Content-Length: 2000 Content-Type:指定请求和响应的内容类型,如果未指定即为t ...