sql-server – 使用T-SQL和XQUERY解析XML – 搜索特定值

前端之家收集整理的这篇文章主要介绍了sql-server – 使用T-SQL和XQUERY解析XML – 搜索特定值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一些应用程序的属性XML格式传递给我.我需要按名称解析属性并将值分配给我的数据库中的相应列.

我目前正在SSIS脚本组件中解析它,但它需要很长时间才能完成.我希望有一个简单的解决方案,使用XQUERY,但我找不到我要找的东西.

这是我收到的xml的一个例子:

<properties>
    <property>
        <name>DISMISS_SETTING</name>
        <value>DEFAULT</value>
    </property>
    <property>
        <name>SHOW_SETTING</name>
        <value>DEFAULT</value>
    </property>
    <property>
        <name>DEFAULT_SETTING</name>
        <value>DEFAULT</value>
    </property>
</properties>

所以,如果我查看第一个属性元素,我会将值DEFAULT分配给我的数据库中的DISMISS_SETTING列.此外,重要的是要注意,值的顺序和组合可能没有特定的顺序.

解决方法

使用 value() Method (xml Data Type)从XML中提取值.在XQuery表达式中检查谓词中所需的名称.
select 
  @XML.value('(/properties/property[name = "DISMISS_SETTING"]/value/text())[1]','nvarchar(100)') as DISMISS_SETTING,@XML.value('(/properties/property[name = "SHOW_SETTING"]/value/text())[1]','nvarchar(100)') as SHOW_SETTING,@XML.value('(/properties/property[name = "DEFAULT_SETTING"]/value/text())[1]','nvarchar(100)') as DEFAULT_SETTING

SQL Fiddle

原文链接:https://www.f2er.com/mssql/75985.html

猜你在找的MsSQL相关文章