XQuery 中的字符串搜索

适用于:SQL Server

本主题提供说明如何在 XML 文档中搜索文本的示例查询。

示例

A. 查找产品目录中包含单词“maintenance”的功能说明

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  

在前面的查询中, where FLOWR 表达式中的 筛选表达式的结果 for ,并仅返回满足 contains () 条件的 元素。

结果如下:

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

另请参阅

XML 数据 (SQL Server)
Xquery 语言参考 (SQL Server)