Ricerca di stringhe in XQuery

In questo argomento sono disponibili query di esempio che illustrano la ricerca di testo nei documenti XML.

Esempi

A. Ricerca di descrizioni di caratteristiche contenenti la parola "maintenance" nel catalogo prodotti

SELECT CatalogDescription.query('
     declare namespace p1="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";
    for $f in /p1:ProductDescription/p1:Features/*
     where contains(string($f), "maintenance")
     return
           $f ') as Result
FROM Production.ProductModel
WHERE ProductModelID=19

Nella query precedente, la clausola where dell'espressione FLOWR filtra il risultato dell'espressione for e restituisce solo gli elementi che soddisfano la condizione contains().

Risultato:

<p1:Maintenance   
      xmlns:p1="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain">
 <p1:NoOfYears>10</p1:NoOfYears>
 <p1:Description>maintenance contact available through your 
               dealer or any Adventure Works Cycles retail store.</p1:Description>
</p1:Maintenance>