Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL Server 2008 XPath


Você pode usar o .exist() método - algo assim:
SELECT 
(list of columns) 
FROM
dbo.YourTable
WHERE
YourXmlColumn.exist('//Value[text()="5052095050830"]') = 1

Isso verifica esse valor específico que você forneceu. Quanto mais precisamente você puder definir o XPath onde se espera que esse valor seja encontrado, melhor para seu desempenho.
YourXmlColumn.exist('//Value[text()="5052095050830"]') = 1

é muito ruim - ele analisa cada <Value> nó em qualquer lugar no XML para encontrar esse valor.

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

seria muito mais focado e, portanto, muito melhor para o desempenho - mas apenas aqueles nós específicos definidos por essa instrução XPath