• 一个简单XQuery查询的例子


    有朋友问到一个问题:

    一张表里有两个XML字段类型的字段,存放旧值,和更新后的值,
    例如:
    <OLDVALUE>
      <H_Action>030</H_Action>
      <D_Action>030</D_Action>
      <OrderCompany>00220</OrderCompany>
      <OrderNumber>10004035</OrderNumber>
      <OrderType>SO</OrderType>
      <LineNumber>10.100</LineNumber>
    </OLDVALUE>

    <NEWVALUE>
      <H_Action>040</H_Action>
      <D_Action>040</D_Action>
      <OrderCompany>00220</OrderCompany>
      <OrderNumber>10004035</OrderNumber>
      <OrderType>SO</OrderType>
      <LineNumber>10.100</LineNumber>
      <LineType>CS</LineType>
      <LoadNumber>8811</LoadNumber>
    </NEWVALUE>
    现在想通过一 个xquery比较出两个值的不同之处,大家有没有好的方法或建议? 

    其实,用Sql2005/2008的xQuery很简单。

    Create table TestXML
    (pkid 
    int primary key,
    OLDVALUE xml,
    NEWVALUE xml
    )
    go

    select * from testXML
    truncate table testxml
    go

    insert into testXML
    select 1,'<H_Action>030</H_Action>
      <D_Action>030</D_Action>
      <OrderCompany>00220</OrderCompany>
      <OrderNumber>10004035</OrderNumber>
      <OrderType>SO</OrderType>
      <LineNumber>10.100</LineNumber>
    '
      ,
    '<H_Action>040</H_Action>
      <D_Action>040</D_Action>
      <OrderCompany>00220</OrderCompany>
      <OrderNumber>10004035</OrderNumber>
      <OrderType>SO</OrderType>
      <LineNumber>10.100</LineNumber>
      <LineType>CS</LineType>
      <LoadNumber>8811</LoadNumber>
    '
      
    go

    比较OLDVALUE字段的H_Action元素的值与NewVALUE字段的H_Action元素的值不同的记录。

    select OLDVALUE.query('data(/H_Action)'as OldH_Action,
    NEWVALUE.query(
    'data(/H_Action)'as NewH_Action
    from testXML
    where cast( OLDVALUE.query('data(/H_Action)'as nvarchar(100))<>
    cast( NEWVALUE.query('data(/H_Action)'as nvarchar(100))
    --结果:
    --
    OldH_Action    NewH_Action
    --
    030    040

    更多XQuery查询,请看MSDN:
    http://msdn.microsoft.com/zh-cn/library/ms190936%28SQL.90%29.aspx

  • 相关阅读:
    shell中的$()、${}、$(())、(())
    阿拉伯数字转中文大写数字的JS
    Oracle创建新用户并将某一用户的表导进来
    便当
    登陆weblogic后页面控制台卡主
    weblogic启动错误 Unrecognized option: -jrockit
    Linux静默安装weblogic
    在vim下按ctrl+s后界面卡住
    使用SQL语句从数据库一个表中随机获取数据
    查询json数据结构的8种方式
  • 原文地址:https://www.cnblogs.com/downmoon/p/1721150.html
Copyright © 2020-2023  润新知