SQLServer:如何在不同的行中分离XML节点
我的表中有三列,其中一列为XML类型。我想在不同的行中显示XML数据的不同节点。像SQLServer:如何在不同的行中分离XML节点,sql,sql-server,xml,xpath,sqlxml,Sql,Sql Server,Xml,Xpath,Sqlxml,我的表中有三列,其中一列为XML类型。我想在不同的行中显示XML数据的不同节点。像 Col1 Col2 Col3 12 ABC <Interactions><interaction id='2' name='A'/><interaction id='3' name='B'/></Interactions> 谢谢! Ank试试这个 SELECT A.Col1 ,A.Col
Col1 Col2 Col3
12 ABC <Interactions><interaction id='2' name='A'/><interaction id='3' name='B'/></Interactions>
谢谢!
Ank试试这个
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);
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);
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)