3

テーブルに 3 つの列があり、XML タイプの列が 1 つあります。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

ありがとう!アンク

4

2 に答える 2

2

これを試して

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);

デモ

于 2013-07-04T10:24:33.457 に答える
0
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

于 2013-08-07T11:44:20.257 に答える