J'ai une table qui stocke les données sur les erreurs qui se produisent (via SSIS), la colonne principale contenant des informations est stockée en XML. Je veux pouvoir interroger les paires nom/valeur dans cette colonne.Filtrer les lignes renvoyées à partir de la requête SQL par champ de type XML à l'aide de Xquery
Pour expliquer dans SQL: SELECT * FROM #tmp WHERE seq='7406834'
table Exemple:
CREATE TABLE #tmp(id INT, category varchar(10), details xml)
INSERT INTO #tmp(id,category,details) values (1,'cat1','<fields><field name="brnum" value="586" /><field name="qty" value="0" /><field name="seq" value="7406815" /></fields>')
INSERT INTO #tmp(id,category,details) values (1,'cat2','<fields><field name="brnum" value="586" /><field name="qty" value="0" /><field name="seq" value="7406817" /></fields>')
INSERT INTO #tmp(id,category,details) values (1,'cat3','<fields><field name="brnum" value="586" /><field name="qty" value="0" /><field name="seq" value="7406834" /></fields>')
INSERT INTO #tmp(id,category,details) values (1,'cat4','<fields><field name="brnum" value="586" /><field name="qty" value="0" /><field name="seq" value="7406841" /></fields>')
DROP TABLE #tmp
Quelqu'un peut-il aider à la syntaxe. J'ai été capable d'utiliser essentiellement une table dérivée, en faisant chaque élément dans une colonne, puis de l'interroger, mais il semble qu'il devrait y avoir une façon plus simple de dire tous les attributs (identifiant, catégorie, détails) pour chaque ligne qui ont un details.seq = 'xxxxx'.