Maison >base de données >tutoriel mysql >Comment puis-je extraire efficacement des données de colonnes XML dans SQL Server ?

Comment puis-je extraire efficacement des données de colonnes XML dans SQL Server ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-13 12:04:43651parcourir

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

Maîtriser l'extraction de données XML dans SQL Server : un guide pratique

Extraire des points de données spécifiques à partir de colonnes XML dans SQL Server peut être complexe. Ce guide fournit des techniques T-SQL efficaces pour simplifier ce processus.

Pour interroger une valeur à partir d'une colonne XML (par exemple, « Rôles »), utilisez cette syntaxe :

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

Rappelez-vous : les colonnes non XML nécessitent une conversion avant l'interrogation. Vous pouvez également cibler des attributs XML spécifiques.

Considérez cet exemple XML :

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

Cette requête récupère les lignes où CodeSystem est égal à « 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>

L'opérateur CROSS APPLY parcourt efficacement les nœuds XML. Cet exemple récupère tous les rôles contenant '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>

Ces méthodes vous permettent d'interroger et d'extraire efficacement des données des colonnes XML de SQL Server, facilitant ainsi une analyse et une gestion sophistiquées des données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn