Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Retorna um valor do tipo xs:boolean indicando se o valor de $arg 1 contém um valor de cadeia de caracteres especificado por $arg 2.
Sintaxe
fn:contains ($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean?
Argumentos
$arg 1
Valor da cadeia de caracteres a ser testado.
$arg 2
Substring para procurar.
Comentários
Se o valor de $arg 2 for uma cadeia de comprimento zero, a função retornará True. Se o valor de $arg 1 for uma cadeia de caracteres de comprimento zero e o valor de $arg 2 não for uma cadeia de comprimento zero, a função retornará False.
Se o valor de $arg 1 ou $arg 2 for a sequência vazia, o argumento será tratado como a cadeia de comprimento zero.
A função contains() usa o agrupamento de pontos de código Unicode padrão do XQuery para a comparação de cadeia de caracteres.
O valor da substring especificado para $arg 2 deve ser menor ou igual a 4000 caracteres. Se o valor especificado for maior que 4000 caracteres, ocorrerá uma condição de erro dinâmico e a função contains() retornará uma sequência vazia em vez de um valor booleano de True ou False. O SQL Server não gera erros dinâmicos em expressões XQuery.
Para obter comparações que não diferenciam maiúsculas de minúsculas, as funções maiúsculas ou minúsculas podem ser usadas.
Caracteres suplementares (pares substitutos)
O comportamento de pares substitutos em funções XQuery depende do nível de compatibilidade do banco de dados e, em alguns casos, do URI de namespace padrão para funções. Para obter mais informações, consulte a seção "XQuery Functions Are Surrogate-Aware" no tópico Alterações significativas nos recursos do mecanismo de banco de dados no SQL Server 2016. Consulte também Nível de compatibilidade ALTER DATABASE (Transact-SQL) e Collation e Unicode Support.
Exemplos
Este tópico fornece exemplos de XQuery em instâncias XML armazenadas em várias colunas do tipo xml no banco de dados AdventureWorks.
Um. Usando a função contains() XQuery para procurar uma cadeia de caracteres específica
A consulta a seguir localiza produtos que contêm a palavra Aerodynamic nas descrições resumidas. A consulta retorna o ProductID e o elemento <Summary> para esses produtos.
--The product model description document uses
--namespaces. The WHERE clause uses the exit()
--method of the xml data type. Inside the exit method,
--the XQuery contains() function is used to
--determine whether the <Summary> text contains the word
--Aerodynamic.
USE AdventureWorks2022;
GO
WITH XMLNAMESPACES ('https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription' AS pd)
SELECT ProductModelID, CatalogDescription.query('
<Prod>
{ /pd:ProductDescription/@ProductModelID }
{ /pd:ProductDescription/pd:Summary }
</Prod>
') as Result
FROM Production.ProductModel
where CatalogDescription.exist('
/pd:ProductDescription/pd:Summary//text()
[contains(., "Aerodynamic")]') = 1
Resultados obtidos
ProductModelID Result
-------------- ---------
28 <Prod ProductModelID="28">
<pd:Summary xmlns:pd=
"https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription">
<p1:p xmlns:p1="http://www.w3.org/1999/xhtml">
A TRUE multi-sport bike that offers streamlined riding and
a revolutionary design. Aerodynamic design lets you ride with
the pros, and the gearing will conquer hilly roads.</p1:p>
</pd:Summary>
</Prod>