zoukankan      html  css  js  c++  java
  • sqlserver中xml查询

    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);
  • 相关阅读:
    Redis 发布与订阅模式
    JS回调函数全解析教程
    如何让你的SQL运行得更快
    Apache设置禁止访问目录
    Ext.Ajax.request提交实现waitMsg效果
    sublime的快捷键整理
    Sublime Text 2插件[这个不错哦]
    mysql如何开启对外连接?
    Javascript之旅——终点站:困惑的settimeout
    Javascript之旅——第十一站:原型也不好理解?
  • 原文地址:https://www.cnblogs.com/pnljs/p/3536151.html
Copyright © 2011-2022 走看看