J'ai jeté un coup d'œil et je n'ai pas trouvé de réponse qui m'aiderait à résoudre mon problème. (Probablement en raison de mes faibles compétences)Problème de recherche de valeurs spécifiques à l'aide de XMLNAMESPACES
Cependant espérait que quelqu'un serait capable de me diriger dans la bonne direction.
Le problème: J'ai une colonne XML dans la table que j'interroge et j'ai besoin de la requête pour retourner les lignes toutes les lignes avec une valeur spécifique.
Un exemple de la colonne xml
<EventD xmlns="http://example1" xmlns:e3q1="http://example2" xmlns:xsi="http://example3" xsi:type="e3q1:Valuechange">
<e3q1:NewValue>Running</e3q1:NewValue>
<e3q1:OldValue>Stopped</e3q1:OldValue>
</EventD>
Ce que je besoin de faire est de renvoyer toutes les lignes qui ont « NewValue » comme « Running »
;WITH XMLNAMESPACES ('example2' as e3q1)
select top 100
Xml.value('(EventD/NewValue)[1]', 'varchar(100)'),
* from Table1
and Xml.value('(EventD/NewValue)[1]', 'varchar(100)') like 'Running'
Pourtant, cela ne semble pas retourner des lignes du tout, serait vraiment reconnaissant si quelqu'un pouvait signaler ce que je fais mal ici.
Merci à l'avance,
SQL Server n'est pas MySQL. Deux produits très différents – gbn
1) Le nom de l'espace de nommage est 'http: // example2', pas' example2'; 2) vous ne * spécifiez * aucun espace de noms dans vos requêtes. Utilisez 'e3q1: NewValue' et déclarez un autre espace de noms pour' http: // example1' afin de pouvoir qualifier 'EventD'. –