首页 >数据库 >mysql教程 >如何在 SQL Server 中高效地从 XML 列中提取数据?

如何在 SQL Server 中高效地从 XML 列中提取数据?

Linda Hamilton
Linda Hamilton原创
2025-01-13 12:04:43651浏览

How Can I Efficiently Extract Data from XML Columns in SQL Server?

掌握 SQL Server 中的 XML 数据提取:实用指南

从 SQL Server 中的 XML 列中提取特定数据点可能很复杂。本指南提供了高效的 T-SQL 技术来简化此过程。

要从 XML 列查询值(例如“角色”),请使用以下语法:

<code class="language-sql">SELECT
  Roles
FROM
  MyTable
WHERE
  Roles.value('(/root/role)[1]', 'varchar(max)') LIKE 'StringToSearchFor'</code>

记住:非 XML 列在查询之前需要转换。 您还可以定位特定的 XML 属性。

考虑这个 XML 示例:

<code class="language-xml"><utilities.codesystems.codesystemcodes ....="" code="0001F" codesystem="2" codetags="-19-" iid="107"></utilities.codesystems.codesystemcodes></code>

此查询检索 CodeSystem 等于“2”的行:

<code class="language-sql">SELECT
  [data]
FROM
  [dbo].[CodeSystemCodes_data]
WHERE
  CAST([data] AS XML).value('(/Utilities.CodeSystems.CodeSystemCodes/@CodeSystem)[1]', 'varchar(max)') = '2'</code>

CROSS APPLY 运算符有效地迭代 XML 节点。此示例检索包含 'ga' 的所有角色:

<code class="language-sql">SELECT * FROM
(SELECT
       pref.value('(text())[1]', 'varchar(32)') AS RoleName
FROM
       MyTable CROSS APPLY
       Roles.nodes('/root/role') AS Roles(pref)
) AS Result
WHERE RoleName LIKE '%ga%'</code>

这些方法使您能够有效地从 SQL Server 的 XML 列中查询和提取数据,从而促进复杂的数据分析和管理。

以上是如何在 SQL Server 中高效地从 XML 列中提取数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn