sql >> Base de Datos >  >> RDS >> Sqlserver

SQL Server 2008 XPath

Puede usar .exist() método - algo como esto:

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

Esto se compara con ese valor particular que ha proporcionado. Cuanto más precisamente pueda definir el XPath donde se espera que se encuentre ese valor, mejor para su rendimiento.

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

es bastante malo:analiza cada uno de los <Value> nodo en cualquier parte del XML para encontrar ese valor.

Algo como esto:

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

estaría mucho más enfocado y, por lo tanto, mucho mejor para el rendimiento, pero solo esos nodos particulares definidos por esa misma declaración XPath