我有一个包含两列,ID和XML数据的表。我想为每个ID切碎XML。我在XML中提取了一个值,并且所有XML的结构都相同,但我不确定如何在表中循环并将XML查询应用于每行。
我需要应用的查询如下:
Select top 1 Element1 = XV.value('(.)[1]','nvarchar(32)') from @xml.nodes('Parameters/Parameter/Value') as x(XV)
因此,最终结果将具有两列,即ID和XML的切碎值。
没有关于您的实际XML以及如何粉碎它以获取一些值的任何知识,就不可能完整地回答,但这应该为您指明了正确的方向:
照 原样 返回ID和XML __
SELECT ID ,TheXmlColumn FROM YourTable
这将返回ID和XML中的值
SELECT ID ,TheXmlColumn.value('Some XPaht','SomeType') AS SomeValueFromXML FROM YourTable
而且如果有更多的嵌入式行,它将是这样的
SELECT ID ,nd.value('Some XPaht','SomeType') AS SomeValueFromXMLRow FROM YourTable OUTER APPLY TheXmlColumn.nodes('SomeXPath') AS A(nd)
我的魔术玻璃灯泡告诉我,您可能需要这样的东西:
SELECT ID ,TheXmlColumn.value('(Parameters/Parameter/Value)[1]','nvarchar(max)') AS SomeValueFromXML FROM YourTable