contient la fonction (XQuery)

 

S’applique à : SQL Server

Retourne une valeur de type xs : Boolean indiquant si la valeur de $arg1 contient une valeur de chaîne spécifiée par $arg2.

  
fn:contains ($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean?  

arg1 $
Valeur de chaîne à tester.

arg2 $
Sous-chaîne à rechercher.

Si la valeur de $arg2 est une chaîne de longueur nulle, la fonction retourne True. Si la valeur de $arg1 est une chaîne de longueur nulle et la valeur de $arg2 n’est pas une chaîne de longueur nulle, la fonction retourne False.

Si la valeur de $arg1 ou $arg2 est la séquence vide, l’argument est traité comme chaîne de longueur nulle.

La fonction contains() utilise le classement des points de code Unicode par défaut de XQuery pour la comparaison des chaînes.

La valeur de sous-chaîne spécifiée pour $arg2 doit être inférieur ou égal à 4 000 caractères. Si la valeur spécifiée est supérieure à 4 000 caractères, une condition d’erreur dynamique se produit et la fonction contains() retourne une séquence vide au lieu d’une valeur booléenne True ou False. SQL Server ne déclenche pas d'erreurs dynamiques sur les expressions XQuery.

Pour obtenir des comparaisons sans respecter la casse, le majuscules ou minuscule fonctions peuvent être utilisées.

Le comportement de la paire de substitution dans des fonctions XQuery dépend du niveau de compatibilité de la base de données et, dans certains cas, de l'URI de l'espace de noms par défaut des fonctions. Pour plus d’informations, consultez la section « XQuery fonctions sont substitut prenant en charge » dans la rubrique modifications avec rupture des fonctionnalités du moteur de base de données dans SQL Server 2016. Consultez également MODIFIER le niveau de compatibilité de base de DONNÉES &#40 ; Transact-SQL &#41 ; et classement et prise en charge Unicode.

Cette rubrique fournit des exemples de XQuery instances XML stockées dans différentes colonnes de type xml dans la base de données AdventureWorks.

A. Utilisation de la fonction contains() XQuery pour rechercher une chaîne de caractères spécifique.

La requête suivante recherche des produits qui contiennent le mot Aerodynamic dans les descriptions résumées. La requête retourne l'ID de produit et l'élément <Summary> pour ces produits.

--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 AdventureWorks  
GO  
WITH XMLNAMESPACES ('http://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  

Résultats

ProductModelID Result

-------------- ---------

28 <Prod ProductModelID="28">

<pd:Summary xmlns:pd=

"http://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>

Fonctions XQuery sur le Type de données xml

Ajouts de la communauté

Afficher: