我的表中有三列,其中一列是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
谢谢!
航向
最佳答案
试试这个
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