当前位置: 首页 > 面试题库 >

为SQL表中的每一行切碎XML

羊时铭
2023-03-14
问题内容

我有一个包含两列,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


 类似资料:
  • 问题内容: 所以我有2张桌子,和。 具有列,具有呼叫者的ID和进行呼叫的时间。然后,我有另一台已,,,,,有一个人,他们的位置的ID ,而且它们在该位置的时间。 我想写一个看起来像这样的查询: 基本上,这是在寻找给定值的最接近值。之后,最终,我想根据数据查找呼叫的位置。 我该怎么做?我知道有一种基于集合的方法,但是我不想那样做。我调查了一下,但是我感到在那方面的表现很糟糕……所以循环中是否有这样做

  • 问题内容: 所以我的数据库中有两个表,它们都看起来像这样: 通讯:(已拨打电话) 移动: 我想做的是找到最接近给定“通信”时间戳的“移动”时间戳。基本上,我想找到一个人打电话时可能去过的地方。 目前,我这样做是: 输出将是: 我将呼叫者的和设置到的位置,然后他们拨打了电话。因此,这将找到一个呼叫者的可能位置。 在这种情况下,打电话到,并且他的移动数据表明他的位置在。这样一来,它就会显示在他可能的位

  • 问题内容: 我有一张表格,其中每一行都是以下形式: 凡我查询寻找的价值配对,使用。就查询时间而言,改为使用一个表(其中每行是一个排列)是否更有效: 这样,我这次使用=运算符查询了值b。 值得注意的是,我感兴趣的用例当前有大约10,000行,其中每个“列表”元素平均有8个条目。我同时标记了两者,因为使用和的数据库都存在类似的问题。 问题答案: 我的查询在其中使用LIKE寻找一对值,%b%。就查询时间

  • 我正在处理一个Excel工作簿,我希望工作簿为每一行新数据创建一个新工作表。下面的代码确实可以做到这一点,但问题是Excel使用每一行第一列中的文本作为新工作表的名称。我想更改它并使另一列成为新工作表名称的来源。请告知我需要更改哪一行才能完成此操作。谢谢您的帮助!

  • 问题内容: 我只知道有关SQL的最低要求,所以请把我当作一个完整的菜鸟! 我有一个表,其中有很多行,但是其中一些行可以通过id配对,我想合并这些行的返回数组。 作为按比例缩小的版本,想象一下我表的上方,我的目标是返回2个结果 基于ID相关并且c2的值为’on’ 我的尝试是从一些阅读中得到以下内容,但没有得到 任何帮助将不胜感激 编辑 我认为Id只需发布下面的语法就可以了,这要归功于下面的答案: 再

  • 问题内容: 我有以下两个表 表人 表关系层次结构 这将形成树状结构 ParentId和ChildId是人员表的ID列的外键 我需要编写可以获取顶级父级(即每个人的根源)的SQL。 遵循CTE可以针对每个用户执行此操作。我将其转换为一个功能,并为Person的每一行运行了它。我在Person表中大约有3k行,大约需要10秒。任何人都可以建议一种可以减少花费的方法。问题是CTE运行3k次后运行的功能