Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL Server 2008 XPath

Vous pouvez utiliser le .exist() méthode - quelque chose comme ceci :

SELECT 
(list of columns) 
FROM
dbo.YourTable
WHERE
YourXmlColumn.exist('//Value[text()="5052095050830"]') = 1

Cela vérifie la valeur particulière que vous avez fournie. Plus vous pouvez définir précisément le XPath où cette valeur doit être trouvée, mieux c'est pour vos performances.

YourXmlColumn.exist('//Value[text()="5052095050830"]') = 1

est assez mauvais - il examine chaque <Value> nœud n'importe où dans le XML pour trouver cette valeur.

Quelque chose comme ça :

YourXmlColumn.exist('/Attributes/ProductVariantAttribute/ProductVariantAttributeValue/Value[text()="5052095050830"]') = 1

serait beaucoup plus ciblé et donc bien meilleur pour les performances - mais ce ne serait que ces nœuds particuliers définis par cette même instruction XPath