从 XML 列中选择所有 XML 节点

2023-12-06

我有一个带有 XML 列的表。每个条目的 XML 结构都是完全扁平的,甚至没有父标签 - 这是一个条目的示例:

<tag1>1.22</tag1>
<tag3>5</tag3>
<tag12>-1.22</tag>

到目前为止,我已经能够做这样的事情:

SELECT CAST(xml_column AS NVARCHAR(MAX)) as XML_text

并在我这边解析 XML。或者我显然可以写xpath查询将标签选择到列中,这就是我想要的,除了大约有 1000 个可能的标签名称,而且我不想将它们全部写出来(并且可能会漏掉一个)。

简而言之,我该如何处理:

| ID | XML type column                |
| 1  | <tag1>1</tag1><tag2>2</tag2>   |
| 2  | <tag2>8</tag2><tag34>1</tag34> |

对此:

| ID | tag1 | tag2 | tag34 |
| 1  | 1    | 2    | NULL  |
| 2  | NULL | 8    | 1     |

对于我可以在数据集中找到的任何标签,在事先不知道他们的情况下?我也愿意解决这个问题:

| ID | tag   | value | 
| 1  | tag1  | 1     |
| 1  | tag2  | 2     |
| 2  | tag2  | 8     |
| 2  | tag34 | 1     |

以下将改变你没有根节点的平面 XML进入经典的 EAV 列表:

DECLARE @tbl TABLE(ID INT IDENTITY, YourXml XML);
INSERT INTO @tbl VALUES
 ('<tag1>1</tag1><tag2>2</tag2>')
,('<tag3>3</tag3><tag4>4</tag4><tag5>5</tag5>');

--查询

SELECT t.ID
      ,AllNodes.value('local-name(.)','nvarchar(max)') AS TagName
      ,AllNodes.value('text()[1]','nvarchar(max)') AS TagValue
FROM @tbl t
CROSS APPLY t.YourXml.nodes('/*') A(AllNodes);

XQuery 函数local-name()允许查询元数据,text()节点代表元素的内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 XML 列中选择所有 XML 节点 的相关文章

  • Xml、xsl Javascript 排序

    我正在寻找一种使用 javascript 对 xml 数据进行排序的方法 并希望最终过滤掉数据 我知道这一切都可以在 xsl 文件中实现 但我想在客户端进行 我已经搜索了多个使用 javascript 进行排序的地方 但其中大部分要么太特定
  • 查询链接服务器时登录失败

    我正在尝试在 SQL Server 中创建链接服务器 Create the link to server uranium EXEC master dbo sp addlinkedserver server N uranium srvprod
  • 从 SQL Server 中的子查询值或其他聚合函数获取平均值

    我有 SQL 语句 SQL Server SELECT COUNT ActionName AS pageCount FROM tbl 22 Benchmark WHERE DATEPART dw CreationDate gt 1 AND
  • 如何使用 python 在 XML 声明后添加注释

    import xml etree ElementTree as ET def addCommentInXml fileXml C Users Documents config xml tree ET parse fileXml root t
  • Android Studio图形界面中的ViewFlipper切换?

    感谢您抽出时间并在有时间的情况下回答我的问题 我对 Android 编程相当陌生 所以任何帮助都很棒 我正在使用 Android Studio 并且编写了一个包含多个布局的 XML 布局 我可以在使用 ViewFlipper showNex
  • 从 bak 文件恢复数据库 sql server 的脚本不起作用

    我有一个空数据库 DB Clients 我想从一个恢复数据库 bak file OldDBClients bak 这是路径 C OldDBClients bak 这是我的脚本 USE master GO RESTORE DATABASE D
  • xQuery LIKE 运算符?

    有没有办法以与 SQL 相同的方式使用 XQuery 执行 LIKE 操作 我不想构造一些 startswith endswith 和 contains 表达式 我想要实现的目标的示例 for x in user where x first
  • 将新的 XElement 添加到 Xdocument

    我有以下代码 它成功写入 XML 文件 但是 由于进行了 tagRegistry Save 调用 它每次都会被覆盖 如何将新的 XElement 添加到现有文件 目前该文件只是被覆盖 public void saveTag if File
  • 即使使用 标记,XSL 也会忽略我的空格

    我在 XSL 代码中创建一个标头 其中包含多个信息字段 即 姓名 Bob 出生日期 1900 年 1 月 1 日 等 我将它们包含在标签中 如下所示
  • C# 查询两个数据库的数据

    我目前有一个查询 我正在从两个不同的数据库获取数据 这些数据被附加到一个名为 accountbuys 的列表中 我的第一个表有三个数据条目 3个想要购买股票的帐户 下一张表有 17 个数据点 购买 17 只股票 I am merging t
  • Php Curl HTTP POST REQUEST 使用嵌套键值对设置自定义标头

    如何使用 Curl 在 php 中设置此标头 CustomInfo 元素是数组 嵌套键值对 AuthenticationInfo 元素是数组 嵌套键值对
  • 解析 XML 标签不匹配时出错

  • 无法从 XML 获取数组字符串资源

    我的 XML 文件中有一个值列表 我想根据微调器选择来选择这些值 由于某种原因 使用数组字符串作为微调器可以正常工作 这些值将填充到微调器中 无论出于何种原因 我无法获取第二个数组的值来挽救我的生命 它们位于同一个文件中 没有我能找到的错误
  • 从 SQL Server 2012 查询结果中减去小时数

    我正在 SQL Server 2012 Management Studio 中的警报系统信号自动化平台数据库上运行查询 但遇到了一些问题 我的查询运行得很好 但我无法将结果细化到我想要的水平 我正在选择一些格式为的列DATETIME 我只想
  • 如何将 SQL 结果存入 STRING 变量?

    我正在尝试获取 C 字符串变量或字符串数 组中的 SQL 结果 是否可以 我需要以某种方式使用 SqlDataReader 吗 我对 C 函数和所有功能非常陌生 曾经在 PHP 中工作 所以如果可以的话请给出一个工作示例 如果相关 我已经可
  • xhtml 文档 - Lang 选项问题

    下面显示的两行有什么区别 如果我没有meta标签 会有什么后果 元版本是否会影响屏幕阅读器而顶部版本则不会 我对他们到底做什么有点困惑 预先感谢您的任何帮助 此致 Skip 深入研究辅助功能识别您的语言页面 http diveintoacc
  • 如何更新 SQL Server 2000 中的 text 或 ntext 字段

    所以我需要更新一个文本字段 在下面使用时 UPDATE 语句或 WRITETEXT 语句都不起作用 CREATE TABLE MyTable IDField int MyField text INSERT INTO MyTable IDFi
  • .NET:SqlDataReader.Close 或 .Dispose 导致超时过期异常

    当尝试在 SqlDataReader 上调用 Close 或 Dispose 时 我收到超时过期异常 如果您有到 SQL Server 的 DbConnection 您可以使用以下命令自行重现它 String CRLF r n String
  • Java XML 解析器添加不必要的 xmlns 和 xml:space 属性

    我在 Windows 10 上使用 Java 11 AdoptOpenJDK 11 0 5 2019 10 15 我正在解析一些旧版 XHTML 1 1 文件 这些文件采用以下一般形式
  • 如何防止 SQL Server 在导入数据时去除前导零

    A data file被导入到SQL Server桌子 数据文件中的一列是文本数据类型 该列中的值只能是整数 SQL Server 数据库中目标表中的相应列的类型为varchar 100 但在数据导入后 SQL Server 会存储以下值

随机推荐

  • 在做教程时使用 sklearn 遇到 ImportError

    您好 我正在尝试遵循 sklearn 提供的机器学习 101 教程 但我一直遇到错误 我从这里下载了最多的sklearn版本 https github com scikit learn scikit learn 我运行 Windows 蟒蛇
  • 如何自己命名servingURL?

    我想要一个来自存储在 Google CS 存储桶中的图像文件的servingURL 它是我自己命名的 我想自己命名servingURL 我有一个单独的微服务 它应该定义servingURL 的名称 在这种情况下 我不必从 Google AE
  • Firebase Cloud 函数:Typescript 无法编译为 JavaScript

    我的计算机上的云功能可以使用 Javascript 但是当我使用 TypeScript 尝试它时 它不会编译为 Javascript 它不会创建 lib index js 事件 当我运行 firebase 部署时 它显示以下错误 Error
  • 为什么Java中的main方法总是需要参数?

    为什么Java中的main方法总是需要参数 我们为什么要写String args每次 而不是在我们使用任何参数时只写它 像这样的方法会生成Main method not found编译器错误 由于我们从不使用 main 方法的任何参数 因此
  • 重新加载片段

    我只是好奇 因为我在 FragmentActivity 中设置了 Fragment 选项卡 如何从 FragmentActivity 或 Fragment 本身重新加载片段 以清除并重新加载该选项卡 我本质上需要与我重新选择要发生的选项卡时
  • 当端口存在时,为什么我会收到 Java NoSuchPortException?

    下面有以下生产代码 我将其用于新驱动程序 portName 是 COM4 并且该端口存在于 PC 上 我可以使用超级终端连接到它 那么为什么 Javacomm 会抛出 NoSuchPortException COM4 在设备管理器中显示良好
  • Cordova 使用文件 url 移动文件

    如何使用从相机获取的 URL 移动文件 moveTo 函数不会调用 successCallback 和 errorCallback 谁能告诉我我做错了什么以及可能的解决方案是什么样的 function successCallback ent
  • 除以零:int 与 float

    将 int 除以零会引发异常 但 float 不会 至少在 Java 中是这样 为什么 float 有额外的 NaN 信息 而 int 类型没有 浮点数的表示被设计成保留一些特殊的位组合来存储特殊值例如 NaN 无穷大等 int 类型没有未
  • 使用 DomDocument 将 CSS 类添加到页面上宽度小于 480px 的所有图像

    我想向页面 WordPress 帖子 页面 上低于特定宽度的所有图像添加 CSS 类 以下作品有效 但是设置属性将每个 img 中的所有类名替换为新的类名 如何在不替换现有类的情况下向每个图像添加新类 function add class
  • 管道和重定向

    之间的确切区别是什么piping and 重定向 我们应该在哪里使用管道以及在哪里使用重定向 他们内部如何运作 重定向 主要 用于文件 将流重定向到文件或从文件重定向流 Piping适用于进程 将流从一个进程传送 重定向 到另一个进程 本质
  • 对象在 Angular Form 验证中可能为“null”

    我正在对表单进行验证 以检查输入的数字是否大于某个数字 我试过这个answer 但我仍然遇到同样的错误 但出现以下错误 error TS2531 Object is possibly null
  • 如何在使用 splitViewController 的 iPad 上引用detailViewController

    我在 XCode 4 3 和 IOS 5 上设置了一个项目 没有使用 iPhone 和 iPad 的情节提要 使用创建新项目对话框中的默认主 细节设置 iPhone端运行得很好 我在 tableView 中选择一个选项 detailView
  • Angular 2 - 共享服务的实现

    我正在尝试实现我在 Stack Overflow 中找到的解决方案 但面临困难 我有一个服务和一个组件 但实现上有些东西不正确 错误 TypeError 无法读取未定义的属性 下一个 可能有什么问题或缺失 还缺少什么吗 同样在我的终端窗口上
  • 如何将 Node.js 应用程序作为后台服务运行?

    由于多年来这篇文章引起了很多关注 我在这篇文章的底部列出了每个平台的顶级解决方案 原帖 我希望我的 Node js 服务器在后台运行 即 当我关闭终端时 我希望我的服务器继续运行 我用谷歌搜索了这个并想出了这个tutorial 但是它没有按
  • Objective C 中的维基百科 API?

    有谁知道在 Objective C 中是否有维基百科 api 的实现 与普通网站相比 它可以更好地访问和显示信息 我正在考虑类似 wikipanion 应用程序的东西 但不是那么复杂 Thanks Joerg 我知道这个问题很老了 但仅适用
  • 如何用ajax显示在线用户

    我想在我的网站上实时显示所有在线用户 但不知道该怎么做 添加新用户登录后并不困难 但我还需要删除不再登录的用户 知道如何做到这一点吗 我应该使用 jQuery 检查哪些用户已注销并将其从列表中删除等吗 您的问题是人们在没有注销的情况下离开
  • 禁用 Alt 键的正常行为

    When pressing the Alt key normally the focus goes to the window s menu I need to disable it globally Because my applicat
  • psr4 自动加载器不会从类内自动加载

    当我使用它时 自动加载器可以工作index php 但是当我在其中创建一个对象时index php并且这个对象必须创建其他对象 它们都在同一个命名空间中 它会抛出错误Uncaught Error Class xxx not found in
  • 我应该使用“from package import utils, settings”还是“from .import utils, settings”

    我正在开发一个Python应用程序 当然 它的所有代码都在一个包中 并在其中运行 用户对应用程序的 Python 包不感兴趣 它只是一个 GUI 应用程序 问题是 在应用程序包内导入模块时首选哪种样式 from application im
  • 从 XML 列中选择所有 XML 节点

    我有一个带有 XML 列的表 每个条目的 XML 结构都是完全扁平的 甚至没有父标签 这是一个条目的示例