Udostępnij za pośrednictwem


PATINDEX (Transact-SQL)

Zwraca pozycję początkową pierwszego wystąpienia deseń określone wyrażenie lub zera, jeśli wzorzec nie zostanie znaleziony, we wszystkich ważny tekst i typy danych znaków.Aby uzyskać więcej informacji zobaczWzorzec dopasowania w warunków wyszukiwania.

Topic link iconKonwencje składni języka Transact-SQL

PATINDEX ( '%pattern%' , expression )

Argumenty

  • pattern
    To ciąg literału.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.

Zwracane typy

bigint Jeśli expression jest varchar(max) lub nvarchar(max) typy danych, w przeciwnym razie int.

Remarks

Jeśli albo pattern lub expression ma wartość NULL, PATINDEX zwraca wartość NULL, gdy poziom zgodności bazy danych jest 70. Jeśli poziom zgodności bazy danych wynosi 65 lub starszy, PATINDEX zwraca wartość NULL tylko wtedy, gdy oba pattern i expression to wartość NULL.

Instrukcja PATINDEX wykonuje porównania na podstawie sortowania danych wejściowych.Aby wykonać porównanie zgodnie z określonym sortowaniem, można zastosować jawne sortowanie danych wejściowych przy użyciu instrukcji COLLATE.

Przykłady

A.Przy użyciu PATINDEX wzorzec

W poniższym przykładzie znajduje się pozycja, w której wzorzec ensure rozpoczyna się w określonym wierszu DocumentSummary kolumna w Document Tabela.

USE AdventureWorks;
GO
SELECT PATINDEX('%ensure%',DocumentSummary)
FROM Production.Document
WHERE DocumentID = 3;
GO

Here is the result set.

----------- 
64          

(1 row(s) affected)

Jeśli nie ograniczają wierszy, które mają być wyszukiwane przy użyciu WHERE klauzula, kwerenda zwróci wszystkie wiersze w tabela i zgłasza niezerowych wartości dla tych wierszy, w której wzorzec został odnaleziony i zero dla wszystkich wierszy, w których nie znaleziono wzorzec.

B.Korzystanie z symboli wieloznacznych z PATINDEX

W poniższym przykładzie użyto symboli wieloznacznych, aby znaleźć pozycji, w którym wzorca en_ure rozpoczyna się w określonym wierszu DocumentSummary kolumna w Document tabela, w której znak podkreślenia jest symbol wieloznaczny reprezentuje dowolny znak.

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)

Jeśli nie ograniczają wierszy, które mają być przeszukiwane, kwerenda zwróci wszystkie wiersze w tabela i raportuje niezerowych wartości dla tych wierszy, w której wzorzec został odnaleziony.

C.Przy użyciu PATINDEX COLLATE

W poniższym przykładzie użyto COLLATE Funkcja jawnie określić sortowanie wyrażenie, które będzie przeszukiwana.

USE tempdb;
GO
SELECT PATINDEX ( '%ein%', 'Das ist ein Test'  COLLATE Latin1_General_BIN) ;
GO