Maison > base de données > tutoriel mysql > Comment extraire les valeurs d'attribut des données XML dans SQL à l'aide de XQuery ?

Comment extraire les valeurs d'attribut des données XML dans SQL à l'aide de XQuery ?

DDD
Libérer: 2024-12-25 13:49:14
original
854 Les gens l'ont consulté

How to Extract Attribute Values from XML Data in SQL Using XQuery?

SQL : accès aux valeurs d'attribut à partir de données XML

En SQL, l'accès à la valeur d'un attribut dans un type de données XML peut être réalisé via XQuery . Cela vous permet d'interroger et de manipuler efficacement les données XML.

Pour récupérer la valeur de l'attribut langue dans le XML fourni :

<email>
  <account language="en" ... />
</email>
Copier après la connexion

Vous pouvez utiliser ce qui suit Expression XQuery :

(/email/account/@language)[1]
Copier après la connexion

Cette expression spécifie :

  • (/email/account) : sélectionne l'élément account dans l'élément racine email.
  • @langue : Récupère la valeur du Attribut langue.
  • [1] (facultatif) : renvoie la première valeur correspondante, car il n'y a qu'un seul attribut langue.

Pour utiliser cette expression dans votre instruction SQL, vous pouvez modifier votre requête comme suit :

SELECT m.Body.value('(/email/account/@language)[1]', 'nvarchar(max)')
FROM Mail
Copier après la connexion

Cette requête renverra la valeur de l'attribut langue sous forme de chaîne.

Exemple :

declare @xml xml =
'<email>
  <account language="en" />
</email>'

select @xml.value('(/email/account/@language)[1]', 'nvarchar(max)')
Copier après la connexion

Sortie :

en
Copier après la connexion

Vous pouvez également utiliser XQuery pour traiter les données XML d'une table, comme le démontre l'exemple suivant :

declare @t table (m xml)

insert @t values 
    ('<email><account language="en" /></email>'), 
    ('<email><account language="fr" /></email>')

select m.value('(/email/account/@language)[1]', 'nvarchar(max)')
from @t
Copier après la connexion

Sortie :

en
fr
Copier après la connexion

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal