【问题标题】:Select multiple values in XML file and concatenation them with xQuery在 XML 文件中选择多个值并使用 xQuery 连接它们
【发布时间】:2014-07-21 07:47:20
【问题描述】:

我有以下 XML:

<items>
 <item value="1"/>
 <item value="2"/>
 <item value="4"/>
</items>

我想选择所有项目值并像这样连接它们 - 见下文 - 使用 XQuery :

1.2.4

有什么想法吗? 提前致谢。

【问题讨论】:

    标签: sql xml select concatenation xquery


    【解决方案1】:

    使用 XQuery,您可以简单地使用 XPath 选择值并使用点将它们连接在一起。

    string-join(/items/item/@value, '.')
    

    【讨论】:

      【解决方案2】:

      您的问题分为两部分:

      1. 从 xml 中获取值
      2. 将多个值连接在一起

      this question. 的答案很好地涵盖了您问题的第二部分

      要从 xml 中获取值,请尝试以下操作:

      -- Your xml variable
      
      DECLARE @xml AS XML = '<items>
                               <item value="1"/>
                               <item value="2"/>
                               <item value="4"/>
                             </items>'
      
      
      -- Example of selecting the values into rows
      
      SELECT 
        item.value('.', 'int') 
      FROM 
         @xml.nodes('/items/item/@value') as T1(item) 
      
      -- Use your favourite/'best for your circumstance' method of 
      -- concatenating the rows into one string 
      -- see https://stackoverflow.com/q/194852/1208914 for other ways
      
      SELECT 
        item.value('.', 'varchar(50)') + ' ' as 'data()' 
      FROM 
        @xml.nodes('/items/item/@value') as T1(item) 
      for xml path('')
      

      我已将上面的代码放入一个 sql fiddle 中,您可以在此处访问和使用它:http://sqlfiddle.com/#!6/d41d8/18144/0

      【讨论】:

        猜你喜欢
        • 2013-09-06
        • 2014-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多