首頁 > 資料庫 > mysql教程 > 如何在 SQL Server 中有效率地從 XML 列中擷取資料?

如何在 SQL Server 中有效率地從 XML 列中擷取資料?

Linda Hamilton
發布: 2025-01-13 12:04:43
原創
655 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板