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

SQL Server 2008 XPath

Du kan bruge .exist() metode - noget som denne:

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

Dette kontrollerer mod den særlige værdi, du har leveret. Jo mere præcist du kan definere den XPath, hvor værdien forventes at blive fundet, jo bedre for din ydeevne.

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

er ret dårligt - den ser på hver enkelt node hvor som helst i XML for at finde denne værdi.

Noget som dette:

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

ville være meget mere fokuseret og dermed meget bedre for ydeevnen - men det ville kun være de særlige noder defineret af netop den XPath-sætning



  1. mysqldbcompare adgang nægtet, men mysql-kommandoen virker

  2. java.sql.SQLEundtagelse:ORA-01002:hent ud af rækkefølge

  3. Parameteriseret forespørgsel til MySQL med C#

  4. Vælg en optagelse baseret på metaen