Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
$arg 1 değerinin $arg 2 tarafından belirtilen bir dizi değeri içerip içermediğini gösteren xs:boolean tipinde bir değer döndürür.
Syntax
fn:contains ($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean?
Arguments
$arg 1
Test için string değeri.
$arg 2
Aramanız gereken alt dize.
Remarks
Eğer $arg 2 değeri sıfır uzunlukta bir diziyse, fonksiyon True döner. Eğer $arg 1'in değeri sıfır uzunlukta bir dizice ve $arg 2'nin değeri sıfır uzunlukta bir dizim değilse, fonksiyon False döner.
Eğer $arg 1 veya $arg 2 değeri boş dizisse, argüman sıfır uzunluklu dizi olarak kabul edilir.
contains() fonksiyonu, dize karşılaştırması için XQuery'nin varsayılan Unicode kod noktası derlemesini kullanır.
$arg 2 için belirtilen alt dizim değeri 4000 karakterden az veya eşit olmalıdır. Belirtilen değer 4000 karakterden büyükse, dinamik bir hata durumu oluşur ve contains() fonksiyonu, Doğru veya Yanlış Boolean değeri yerine boş bir dizi döndürür. SQL Server, XQuery ifadelerinde dinamik hata oluşturmaz.
Küçük ama küçük harf hassasiyeti olmayan karşılaştırmalar yapmak için büyük veya küçük harf fonksiyonları kullanılabilir.
Ek Karakterler (Vekil Çiftler)
XQuery fonksiyonlarındaki vekil çiftlerin davranışı, veritabanı uyumluluk seviyesine ve bazı durumlarda fonksiyonlar için varsayılan isim alanı URI'sine bağlıdır. Daha fazla bilgi için Uyumluluk Seviyesi (Transact-SQL) ve Koleksiyon ve Unicode Desteği bölümlerine bakınızALTER DATABASE.
Examples
Bu konu, AdventureWorks veritabanındaki çeşitli xml tipi sütunlarda depolanan XML örneklerine karşı XQuery örnekleri sunmaktadır.
A. contains() XQuery fonksiyonunu kullanarak belirli bir karakter dizisini aramak
Aşağıdaki sorgu, özet açıklamalarında Aerodinamik kelimesini içeren ürünleri bulmaktadır. Sorgu, bu tür ürünler için ProductID ve <Summary> öğeyi döndürür.
--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
Results
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>