Поиск строки в XQuery
Применимо к:SQL Server
В этом подразделе приведены примеры запросов, показывающие, как производится поиск текста в XML-документах.
Примеры
О. Поиск описаний характеристик, содержащих слово «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)