【问题标题】:SQL server : How to seperate XML nodes in different rowsSQL 服务器:如何分隔不同行中的 XML 节点
【发布时间】:2013-07-02 05:43:53
【问题描述】:

我的表中有三列,其中一列是 XML 类型。我想在不同的行中显示 XML 数据的不同节点。喜欢,

Col1      Col2         Col3
12        ABC          <Interactions><interaction id='2' name='A'/><interaction id='3' name='B'/></Interactions> 

如何在不同的行显示不同的交互?喜欢,

Row1 :  12    ABC   2   A
Row2 :  12    ABC   3   B

谢谢! 安克

【问题讨论】:

    标签: sql sql-server xml xpath sqlxml


    【解决方案1】:

    试试这个

    SELECT 
        A.Col1
        ,A.Col2
        ,Split.interaction.value('@id', 'INT') AS [ID]
        ,Split.interaction.value('@name', 'VARCHAR(10)') AS [Name]
     FROM  
     (
        SELECT Col1, Col2, Col3 FROM  #Tablexml
     ) AS A CROSS APPLY Col3.nodes ('/Interactions/interaction') AS Split(interaction);
    

    DEMO

    【讨论】:

      【解决方案2】:
      select
          T.Col1, T.Col2,
          C.N.value('@id', 'int') as ID,
          C.N.value('@name', 'nvarchar(max)') as Name
      from Table1 as T
          outer apply T.Col3.nodes('Interactions/interaction') as C(N)
      

      sql fiddle demo

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-10
        • 2015-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多