PATINDEX (Transact-SQL)
Desen, tüm geçerli metni ve karakter türleri bulunamazsa bir desen ilk geçtiği başlangıç konumunun, belirtilen ifade veya sıfır döndürür.Daha fazla bilgi için bkz:Arama koşullarını'içinde eşleşen bir desen.
PATINDEX ( '%pattern%' , expression )
Bağımsız değişkenler
pattern
Bir sabit değer mi dize.Wildcard characters can be used; however, the % character must come before and follow pattern (except when you search for first or last characters).pattern is an expression of the character string data type category.expression
Is an expression, typically a column that is searched for the specified pattern.expression is of the character string data type category.
Dönüş Türleri
bigint if expression ilerisindedir varchar(max) veya nvarchar(max) Diğer veri türleri int.
Remarks
Ya da, pattern veya expression boş, veritabanı uyumluluk düzey 70 olduğunda, PATINDEX NULL döndürüyor. Veritabanı uyumluluk düzey 65 veya önceki sürümlerinde, bu PATINDEX NULL döndürüyor, yalnızca her ikisi de pattern ve expression NULL olur.
PATINDEX giriş harmanlama üzerinde temel alan karşılaştırmalar gerçekleştirir.Içinde belirtilen bir harmanlama bir karşılaştırma yapmak için , COLLATE giriş için açık bir alfabe düzeni uygulamak için kullanabilirsiniz.
Örnekler
C.Bir desen PATINDEX ile kullanma
Aşağıdaki örnek, hangi konumda bulur deseni ensure Belirli bir satırda başlatan DocumentSummary sütun, Document TABLO.
USE AdventureWorks;
GO
SELECT PATINDEX('%ensure%',DocumentSummary)
FROM Production.Document
WHERE DocumentID = 3;
GO
Here is the result set.
-----------
64
(1 row(s) affected)
Satırları kullanarak aranacak kısıtlamayın, bir WHERE yan tümce, sorgunun tüm satırları verir tablo ve desen olduğu satırları bulunan ve hangi desenin bulunamadı, tüm satırlar için sıfır, sıfır dışında değerler bildiriyor.
b.PATINDEX ile joker karakterleri kullanma
Aşağıdaki örnek, hangi konumda bulmak için joker karakterleri kullanır deseni en_ure Belirli bir satırda başlatan DocumentSummary sütunda Document Tablo, bir joker karakter alt çizgi olduğu herhangi bir karakteri temsil eden.
USE AdventureWorks;
GO
SELECT PATINDEX('%en_ure%', DocumentSummary)
FROM Production.Document
WHERE DocumentID = 3;
GO
Here is the result set.
------------
64
(1 row(s) affected)
Aranacak satırları kısıtlamak, sorgu tüm satırları verir tablo ve içinde desen bulundu, bu satırlar için sıfır dışında değerler bildiriyor.
c.COLLATE PATINDEX ile kullanma
Aşağıdaki örnek COLLATE işlev, açıkça aranır ifadenin harmanlama belirtmek için.
USE tempdb;
GO
SELECT PATINDEX ( '%ein%', 'Das ist ein Test' COLLATE Latin1_General_BIN) ;
GO