zoukankan      html  css  js  c++  java
  • SQL Server 中对XML数据的五种基本操作

    1.xml.exist
       输入为XQuery表达式,返回0,1或是Null。0表示不存在,1表示存在,Null表示输入为空
    2.xml.value
       输入为XQuery表达式,返回一个SQL Server标量值
    3.xml.query
       输入为XQuery表达式,返回一个SQL Server XML类型流
    4.xml.nodes
       输入为XQuery表达式,返回一个XML格式文档的一列行集
    5.xml.modify
       使用XQuery表达式对XML的节点进行insert , update 和 delete 操作。

    下面通过例子对上面的五种操作进行说明:

    declare @XMLVar xml = '

    <catalog> 

           <book category="ITPro">   

                  <title>Windows Step By Step</title>   

                  <author>Bill Zack</author>   

                  <price>49.99</price> 

           </book> 

           <book category="Developer">   

                  <title>Developing ADO .NET</title>   

                  <author>Andrew Brust</author>   

                  <price>39.93</price> 

           </book> 

           <book category="ITPro">   

                  <title>Windows Cluster Server</title>   

                  <author>Stephen Forte</author>   

                  <price>59.99</price> 

           </book>

    </catalog>'

    1. xml.exist

       select @XMLVar.exist('/catalog/book')-----返回1  

       select @XMLVar.exist('/catalog/book/@category')-----返回1  

       select @XMLVar.exist('/catalog/book1')-----返回0  

       set @XMLVar = null  

       select @XMLVar.exist('/catalog/book')-----返回null

    2.xml.value

       select @XMLVar.value('/catalog[1]/book[1]','varchar(MAX)')  

       select @XMLVar.value('/catalog[1]/book[2]/@category','varchar(MAX)')  

       select @XMLVar.value('/catalog[2]/book[1]','varchar(MAX)')  

       结果集为:  

       Windows Step By StepBill Zack49.99   Developer   NULL

    3.xml.query

       select @XMLVar.query('/catalog[1]/book')   

       select @XMLVar.query('/catalog[1]/book[1]')  

       select @XMLVar.query('/catalog[1]/book[2]/author')

       结果集分别为:
    <book category="ITPro">
      <title>Windows Step By Step</title>
      <author>Bill Zack</author>
      <price>49.99</price>
    </book>
    <book category="Developer">
      <title>Developing ADO .NET</title>
      <author>Andrew Brust</author>
      <price>39.93</price>
    </book>
    <book category="ITPro">
      <title>Windows Cluster Server</title>
      <author>Stephen Forte</author>
      <price>59.99</price>
    </book>


    <book category="ITPro">
      <title>Windows Step By Step</title>
      <author>Bill Zack</author>
      <price>49.99</price>
    </book>


    <author>Andrew Brust</author>

    4.xml.nodes

       select T.c.query('.') as result from @XMLVar.nodes('/catalog/book') as T(c)  

       select T.c.query('title') as result from @XMLVar.nodes('/catalog/book') as T(c)

       结果集分别为:
    <book category="ITPro"><title>Windows Step By Step</title><author>Bill …………

    <book category="Developer"><title>Developing ADO .NET</title><author>Andrew …………
    <book category="ITPro"><title>Windows Cluster Server</title><author>Stephen …………


    <title>Windows Step By Step</title>
    <title>Developing ADO .NET</title>
    <title>Windows Cluster Server</title>

     5.xml.modify

  • 相关阅读:
    DateUtils
    Java静态绑定与动态绑定
    Mysql中实现递归查询
    架构一、核心概念
    Spring cron 表达式
    MySql点点滴滴(一)之可视化工具介绍
    java中注解的使用与实例
    3、第一个Python程序
    CSS命名
    如何在Notepad++ 中成功地安装Emmet 插件
  • 原文地址:https://www.cnblogs.com/cxd4321/p/2175402.html
Copyright © 2011-2022 走看看