0
I possède une colonne XML qui contiennent des données comme suit:xml déchiqueter avec un nombre variable de noeuds
<AuthorList CompleteYN="Y">
<Author ValidYN="Y">
<LastName>Alió</LastName>
<ForeName>J L</ForeName>
<Initials>JL</Initials>
</Author>
<Author ValidYN="Y">
<LastName>Ortiz</LastName>
<ForeName>D</ForeName>
<Initials>D</Initials>
</Author>
<Author ValidYN="Y">
<LastName>Muftuoglu</LastName>
<ForeName>O</ForeName>
<Initials>O</Initials>
</Author>
<Author ValidYN="Y">
<LastName>Garcia</LastName>
<ForeName>M J</ForeName>
<Initials>MJ</Initials>
</Author>
</AuthorList>
le nombre d'auteurs est variable. Je n'ai pas de problème pour extraire les premiers auteurs etc .:
SELECT
ID,
AuthorList.value('(Author/ForeName)[1]', 'varchar(max)') as ForeName,
AuthorList.value('(Author/LastName)[1]', 'varchar(max)') as LastName,
AuthorList.value('(Author/Initials)[1]', 'varchar(max)') as Initials
FROM
XMLs CROSS APPLY
xml.nodes('//AuthorList') AS AuthorList(AuthorList)
Je suis juste curieux de savoir comment je peux obtenir quelque chose comme ceci 'dynamique':
1 JL Alió JL 1 D Ortiz D 1 O Muftuoglu O 1 MJ Garcia MJ
Merci!