Buscar cadenas en XQuery

Este tema incluye consultas de ejemplo que muestran cómo buscar texto en documentos XML.

Ejemplos

A. Buscar descripciones de características que contengan la palabra "maintenance" en el catálogo de productos

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

En la consulta anterior, la parte where de la expresión FLOWR filtra el resultado de la expresión for y devuelve sólo aquellos elementos que cumplen la condición contains().

El resultado es el siguiente:

<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 AdventureWorks retail store.</p1:Description>
</p1:Maintenance>