xml查询

在数据库中直接支持xml类型的数据有:oracle xmltype 类型,sqlServer xml 类型。

以sqlServer为例:

      sqlServer 数据库中封装了关于操作xml数据的一些方法

                   如图所示:

       

query方法:

  首先声明一个xml的类型变量: declare @myxml  xml

   给声明的变量赋值:  SELECT TOP 1 @myxml = CAST(F_BIZ_DATA AS XML ) FROM CNPC_CARD_REQ

  赋值完毕后调用xml类型数据方法:

          select  @myxml.query('/Root/ProductDescription/Features')

    根据xml文档,根据节点路径查询,比如上面:查询root根节点下的ProductDescription子节点下的Features子节点

     返回的是结果是: <Features>document</Features>

   查询是否存在某数据时:使用exist方法

        eg:我想查询寻一段xml文档中是否包含我想到的数据

       我们自己定义一段字符串:

             DECLARE @x XML
       SET @x='
<MasterxRow>
<body>
  <ActivityType>2</ActivityType>
  <ProductType>22</ProductType>
   <ProductType>21</ProductType>
  <RefNo>222222222222222222222</RefNo>
  <ContactResult>0</ContactResult>
  </body>
</MasterxRow>'

查看字符串中是否存在22     注意语法格式

IF @x.exist('//ProductType[.=21]')=1
    PRINT 'aa'
ELSE
    PRINT 'bb'

  查询xml中的value值

  基本语法:value (XQuery, SQLType)

    

XQuery
XQuery 表达式,一个字符串文字,从 XML 实例内部检索数据。
XQuery 必须最多返回一个值。
否则,将返回错误。

SQLType  不能是xml类型,最好使用字符串类型来匹配 varchar

  实例:

     declare  @str varchar
set @str=
@x.value('(/MasterxRow/body/ProductType)[1]','varchar(120)');
select @str



 

    

 




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值