Utilisation de SQL Server pour obtenir toutes les données à partir des nœuds XML nommé de la même manière
J'ai un fichier XML où les nœuds que j'ai besoin de données sont tous le même nom. Je comprends comment accéder à la première (ou deuxième enregistrement) si la requête suivante ne donne-moi la part de l'auteur (le <a1>
tag). Comment puis-je obtenir tous les auteurs comme une seule colonne ?
DECLARE @MyXML XML
SET @MyXML = '<refworks>
<reference>
<rt>Journal Article</rt>
<sr>Print(0)</sr>
<id>869</id>
<a1>Aabye,Martine G.</a1>
<a1>Hermansen,Thomas Stig</a1>
<a1>Ruhwald,Morten</a1>
<a1>PrayGod,George</a1>
<a1>Faurholt-Jepsen,Daniel</a1>
<a1>Jeremiah,Kidola</a1>
<a1>Faurholt-Jepsen,Maria</a1>
<a1>Range,Nyagosya</a1>
</reference>
</refworks>'
SELECT
author.value('(a1)[2]', 'varchar(MAX)') AS 'Author'
FROM @MyXML.nodes('/refworks/reference') AS ref(author)
OriginalL'auteur user918967 | 2013-03-12
Vous devez vous connecter pour publier un commentaire.
Essayez ceci :-
child::node() représente un axe spécificateur qui est
child
et::
est l'axe séparateur.Pour la compréhension de l'enfant de l'axe qui est utilisé pour forer vers le bas dans le nœud peut être trouvé dans ce MSDN document.
ou manipuler des données xml dans sql server
Mise à jour :-
Beaucoup plus simple façon dont Vous étiez sur la bonne voie .Spécifier le nœud enfant dans la clause from pour filtrer les données
Laissez-moi savoir si vous avez encore des doutes après en passant par les docs
pouvez vous s'il vous plaît prendre un coup d'oeil à ma question ici: stackoverflow.com/questions/27638108/...
OriginalL'auteur praveen