Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              van toepassing op:SQL Server-
Retourneert een waarde van het type xs:boolean die aangeeft of de waarde van $arg 1 een tekenreekswaarde bevat die is opgegeven door $arg 2.
Syntaxis
  
fn:contains ($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean?  
Argumenten
              $arg 1
Tekenreekswaarde die moet worden getest.
              $arg 2-
Subtekenreeks die moet worden gezocht.
Opmerkingen
Als de waarde van $arg 2 een tekenreeks met lengte nul is, retourneert de functie True. Als de waarde van $arg 1 een tekenreeks met lengte nul is en de waarde van $arg 2 geen tekenreeks met lengte nul is, retourneert de functie False.
Als de waarde van $arg 1 of $arg 2 de lege reeks is, wordt het argument beschouwd als de tekenreeks met lengte nul.
De functie contains() maakt gebruik van de standaard Unicode-codepuntsortering van XQuery voor de tekenreeksvergelijking.
De subtekenreekswaarde die is opgegeven voor $arg 2 moet kleiner zijn dan of gelijk zijn aan 4000 tekens. Als de opgegeven waarde groter is dan 4000 tekens, treedt een dynamische foutvoorwaarde op en retourneert de functie contains() een lege reeks in plaats van een Booleaanse waarde van True of False. SQL Server genereert geen dynamische fouten in XQuery-expressies.
Als u hoofdlettergevoelige vergelijkingen wilt ophalen, kunt u de hoofdletters of kleine letters gebruiken.
Aanvullende tekens (surrogaatparen)
Het gedrag van surrogaatparen in XQuery-functies is afhankelijk van het compatibiliteitsniveau van de database en in sommige gevallen de standaardnaamruimte-URI voor functies. Zie de sectie 'XQuery-functies zijn surrogaatbewust' in het onderwerp Belangrijke wijzigingen in database-enginefuncties in SQL Server 2016. Zie ook ALTER DATABASE Compatibility Level (Transact-SQL) en Collation and Unicode Support.
Voorbeelden
Dit onderwerp bevat XQuery-voorbeelden voor XML-exemplaren die zijn opgeslagen in verschillende xml-typekolommen in de AdventureWorks-database.
Een. De functie contains() XQuery gebruiken om te zoeken naar een specifieke tekenreeks
Met de volgende query worden producten gevonden die het woord Aerodynamisch bevatten in de samenvattingsbeschrijvingen. De query retourneert de Product-id en het <Summary>-element voor dergelijke producten.
--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  
Resultaten
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>