我有一个包含两列,ID和XML数据的表。我想为每个ID粉碎XML。我在XML中提取单个值,并且所有XML的结构都相同我只是不确定如何遍历表并将XML查询应用于每一行。
我需要申请的查询如下:
DoFn
因此,最终结果将有两列,ID和来自XML的碎片值。
答案 0 :(得分:2)
如果不了解您的实际XML以及如何将其粉碎以获取某些值,则无法在完整性中回答这些问题,但是这个问题指向了正确的方向:
按原样返回ID和XML
SELECT ID
,TheXmlColumn
FROM YourTable
这将返回XML中的ID和值
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