SQL

为SQL表中的每一行切碎XML

发布于 2021-03-11 18:01:47

我有一个包含两列,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的切碎值。

关注者
0
被浏览
66
1 个回答
  • 面试哥
    面试哥 2021-03-11
    为面试而生,有面试问题,就找面试哥。

    没有关于您的实际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
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看