Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL Server 2008 XPath

Puoi usare .exist() metodo - qualcosa del genere:

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

Questo controlla quel valore particolare che hai fornito. Più precisamente puoi definire l'XPath in cui dovrebbe essere trovato quel valore, migliore sarà la tua performance.

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

è piuttosto brutto - esamina ogni singolo <Value> nodo ovunque nell'XML per trovare quel valore.

Qualcosa del genere:

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

sarebbe molto più mirato e quindi molto migliore per le prestazioni, ma sarebbero solo quei nodi particolari definiti da quella stessa istruzione XPath