Freigeben über


Zeichenfolgensuche in XQuery

Gilt für:SQL Server

In diesem Thema werden Beispielabfragen bereitgestellt, die zeigen, wie in XML-Dokumenten nach Text gesucht werden kann.

Beispiele

A. Suchen von Funktionsbeschreibungen mit dem Wort "maintenance" im Produktkatalog

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  

In der vorherigen Abfrage filtert der where im FLOWR-Ausdruck das Ergebnis des for Ausdrucks und gibt nur Elemente zurück, die die contains() -Bedingung erfüllen.

Dies ist das Ergebnis:

<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>  

Weitere Informationen

XML-Daten (SQL Server)
XQuery-Sprachreferenz (SQL Server)