Récupération des valeurs d'attribut du type de données XML en SQL
Lorsque vous travaillez avec des données XML en SQL, il est souvent nécessaire d'extraire les valeurs d'attributs spécifiques . Par exemple, nous devrons peut-être obtenir la valeur de l'attribut « langue » à partir du XML suivant :
<email> <account language="en" ... /> </email>
Pour y parvenir, nous pouvons exploiter les expressions XQuery. Voici une version modifiée de votre requête SQL utilisant XQuery :
SELECT @xml.value('(/email/account/@language)[1]', 'nvarchar(max)') FROM Mail
Dans cette requête, nous utilisons la fonction .value() pour interroger le document XML représenté par la variable "@xml". L'expression XQuery "/email/account/@langue" spécifie le chemin d'accès à l'attribut souhaité, et le "[1]" garantit que nous récupérons la valeur du premier (et unique) attribut correspondant.
Alternativement , vous pouvez utiliser l'expression de tableau suivante pour récupérer les valeurs d'attribut :
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
Cette approche fournit une solution plus concise et évolutive pour récupérer les valeurs d'attribut de plusieurs documents XML dans un tableau. Le résultat de la requête sera :
en fr
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!