Sql server 将SQL Server 2008表列转换为XML并聚合xpath值
我在Sql server 将SQL Server 2008表列转换为XML并聚合xpath值,sql-server,xml,sql-server-2008,Sql Server,Xml,Sql Server 2008,我在NVARCHAR中存储了一个包含xml的表。就是这样 xml看起来像 <Container> <Data> <SomeNode>val1</SomeNode> </Data> <Data> <SomeNode>val2</SomeNode> </Data> </Container> 这给了我一个节点列表。在这里,我迷失了方向:如何将其展平为
NVARCHAR
中存储了一个包含xml的表。就是这样
xml看起来像
<Container>
<Data>
<SomeNode>val1</SomeNode>
</Data>
<Data>
<SomeNode>val2</SomeNode>
</Data>
</Container>
这给了我一个节点列表。在这里,我迷失了方向:如何将其展平为单个值?有两种方法:
你是说查询('//SomeNode/text()')?那只是粘上了val0val1,val2,val3val4,这不是我需要的抱歉,我还有别的想法,试试第二种方法,这是你需要的
SELECT CAST(XmlColumn AS XML).query('//SomeNode') FROM ThatTableWithXmlInStrings
select T2.X.value('text()[1]', 'nvarchar(10)')
from ThatTableWithXmlInStrings
cross apply (select cast(XmlColumn as xml)) T1(X)
cross apply T1.X.nodes('/Container/Data/SomeNode') as T2(X)