【发布时间】:2014-08-26 15:01:13
【问题描述】:
我有一个带有 xml 格式的表格(为便于阅读而简化)
<parentItem xmlns:i="http://tempuri.org/1" xmlns="http://tempuri.org/2">
<ItemA></ItemA>
<ItemB></ItemB>
<ItemC xmlns:d2p1="http://tempuri.org/3">
<d2p1:string>value1</d2p1:string>
<d2p1:string>value2</d2p1:string>
<d2p1:string>value3</d2p1:string>
<!-- .... (0 to many strings here) -->
</ItemC>
</parentItem>
我唯一关心的是 parentItem > ItemC > string 中的值
我想获取由逗号等分隔的值
所需结果:“value1,value2,value3”
目前我可以通过这样做获得一个值:
SELECT CAST([QueryXml] as xml).value('(/*:parentItem/*:ItemC/node())[1]','nvarchar(max)')
FROM [opendb].[dbo].[MyTable]
结果:“value1”
我也可以像这样得到所有的值:
SELECT CAST([QueryXml] as xml).value('(/*:ConflictsSearchTermQuery/*:TermItems)[1]','nvarchar(max)')
FROM [opendb].[dbo].[ConflictsSearchTerms]
结果:“value1value2value3”
但我希望获得一组分隔的值
所需结果:“value1,value2,value3”
【问题讨论】:
标签: sql xml sql-server-2012