Bonjour,
Je cherche à savoir si il est possible de façon simple de compter le nombre d'occurences d'un terme dans un champ XML ou de simplifier mon futur traitement.
Je m'explique : j'ai une table (contenant plus d'un million d'entrés) qui contient un champ id et un champ xml qui ressemble à :
je veux créer une table
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <root> <elem attr1="val1" attr2="val2"/> <elem attr1="val3" attr2="val4"/> <elem attr1="val5" attr2="val6"/> </root>
ID / ATTR1 / ATTR2
Je pensais faire du T-sql en passant par une table temporaire du type
ID / ChampXML / NbOccurences (avec NbOccurence basé sur le nombre de <elem attr1 du champ)
Et ensuite faire une double boucle en utilisant une requête du genre
Avec @i de 1 à NbOccurences
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Select id ,ChampXML.value('(root/elem/@attr1)[@i]','nvarchar(max)') ,ChampXML.value('(root/elem/@attr2)[@i]','nvarchar(max)') from ma tableTemp
Sauf que mise à part passer par une fonction je ne vois pas d'autres solutions pour le nombre d'occurences.
Si quelqu'un a des idées, je suis preneur.
D'avance merci.
Partager