Megosztás a következőn keresztül:


Függvények sztringértékeken – tartalmazza

A következőkre vonatkozik:SQL Server

Xs:boolean típusú értéket ad vissza, amely jelzi, hogy az $arg 1 értéke tartalmaz-e a $arg 2által megadott sztringértéket.

Szintaxis

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

Érvek

$arg 1
Tesztelendő sztringérték.

$arg 2
A kereséshez szükséges részszúrás.

Megjegyzések

Ha a $arg 2 értéke nulla hosszúságú sztring, a függvény Igazad vissza. Ha az $arg 1 értéke nulla hosszúságú karakterlánc, és a $arg 2 értéke nem nulla hosszúságú sztring, a függvény Hamisad vissza.

Ha az $arg 1 vagy $arg 2 értéke az üres sorozat, az argumentum nulla hosszúságú sztringként lesz kezelve.

A contains() függvény az XQuery alapértelmezett Unicode-kódpont-rendezést használja a sztring-összehasonlításhoz.

A $arg 2 megadott részszúrási értéknek 4000 karakternél kisebbnek vagy egyenlőnek kell lennie. Ha a megadott érték nagyobb, mint 4000 karakter, dinamikus hibaállapot lép fel, és a Contains() függvény üres sorozatot ad vissza a True vagy Hamislogikai érték helyett. Az SQL Server nem okoz dinamikus hibákat az XQuery-kifejezésekben.

A kis- és nagybetűk érzéketlen összehasonlításához a nagybetűs vagy kisbetűs függvények használhatók.

Kiegészítő karakterek (helyettesítő párok)

Az XQuery-függvényekben a helyettesítő párok viselkedése az adatbázis kompatibilitási szintjétől és bizonyos esetekben a függvények alapértelmezett névterének URI-jától függ. További információt az SQL Server 2016 adatbázismotor-funkcióinak kompatibilitástörő változásairóltémakör "XQuery Functions Are Surrogate-Aware" című szakaszában talál. Lásd még ALTER DATABASE kompatibilitási szintjét (Transact-SQL) és rendezési és Unicode-támogatási.

Példák

Ez a témakör XQuery-példákat tartalmaz az AdventureWorks-adatbázis különböző XML-típusú oszlopaiban tárolt XML-példányokra.

Egy. Adott karaktersztring keresése a contains() XQuery függvény használatával

Az alábbi lekérdezés megkeresi az összefoglaló leírásokban az Aerodynamic szót tartalmazó termékeket. A lekérdezés az ilyen termékek termékazonosítóját és <Summary> elemét adja vissza.

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

Eredmények

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>

Lásd még:

XQuery-függvények xml adattípusú