sql >> Databáze >  >> RDS >> Sqlserver

SQL Server 2008 XPath

Můžete použít .exist() metoda - něco takového:

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

To se porovná s konkrétní hodnotou, kterou jste zadali. Čím přesněji můžete definovat cestu XPath, kde se očekává, že se tato hodnota najde, tím lépe pro váš výkon.

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

je docela špatný - prohlíží každý jednotlivý <Value> uzel kdekoli v XML, abyste našli tuto hodnotu.

Něco takového:

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

bylo by mnohem více zaměřené, a tedy mnohem lepší pro výkon – ale bylo by to pouze ty konkrétní uzly definované právě tímto příkazem XPath



  1. jOOQ vkládací dotaz s vracením vygenerovaných klíčů

  2. Aktualizujte více tabulek v jednom dotazu v mysql

  3. SubSonic negeneruje tabulky cizích klíčů MySql

  4. Aplikace spuštěná v úloze cron Kubernetes se nepřipojuje k databázi ve stejném clusteru Kubernetes