CHARINDEX (Transact-SQL)

Wyszukiwanie expression2 dla expression1 i zwraca jego uruchamianie pozycji, jeżeli stwierdzono, że.Wyszukiwanie rozpoczyna się od start_location.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

CHARINDEX ( expression1 ,expression2 [ , start_location ] ) 

Argumenty

  • expression1
    Jest znakiem wyrażenie zawierający sekwencji do znalezienia.expression1jest maksymalnie 8000 znaków.

  • expression2
    Jest znak wyrażenie mają być przeszukiwane.

  • start_location
    Jest liczbą całkowitą lub bigint wyrażenie w którym rozpoczyna się wyszukiwanie.Jeśli start_location nie jest określony, jest liczbą ujemną, lub 0, rozpoczyna wyszukiwanie od początku expression2.

Zwracane typy

bigintif expression2 is of the varchar(max), nvarchar(max) or varbinary(max) data types; w przeciwnym razie int.

Uwagi

Jeśli expression1 lub expression2 to typ danych Unicode (nvarchar lub nchar) i innych nie, drugi jest konwertowane na typ danych Unicode.Nie można używać CHARINDEX z image typu danych.

Jeśli expression1 lub expression2 ma wartość NULL, CHARINDEX zwraca wartość NULL, gdy zgodność bazy danych poziom wynosi 70 lub wyższej.W przypadku 65 lub niższym zgodności bazy danych poziom CHARINDEX zwraca wartość NULL tylko wtedy, gdy oba expression1 i expression2 są wartości NULL.

Jeśli expression1 nie został znaleziony w ciągu expression2, CHARINDEX zwraca wartość 0.

CHARINDEX wykonuje porównania oparte na sortowanie danych wejściowych.Przeprowadzenie porównania w określonym sortowanieumożliwia COLLATE dotyczą jawnych sortowanie danych wejściowych.

Pozycji początkowej, zwracany jest oparta na 1, nie opartych na 0.

Przykłady

Poniższy przykład zwraca pozycji, w której sekwencję znaków bicycle uruchamia się w DocumentSummary kolumna Document tabela.

DECLARE @document varchar(64)

SELECT @document = 'Reflectors are vital safety' +
                   ' components of your bicycle.'
SELECT CHARINDEX('bicycle', @document)
GO

Oto zestaw wyników.

----------- 
48          

W poniższym przykładzie użyto opcjonalnej start_location parametr rozpocząć wyszukiwanie vital w piątym znak DocumentSummary kolumna.

DECLARE @document varchar(64)

SELECT @document = 'Reflectors are vital safety' +
                   ' components of your bicycle.'
SELECT CHARINDEX('vital', @document, 5)
GO

Oto zestaw wyników.

----------- 
16          

(1 row(s) affected)

W poniższym przykładzie przedstawiono zestaw wyników po expression1 nie został znaleziony w ciągu expression2.

DECLARE @document varchar(64)

SELECT @document = 'Reflectors are vital safety' +
                   ' components of your bicycle.'
SELECT CHARINDEX('bike', @document)
GO

Oto zestaw wyników.

----------- 
0          

(1 row(s) affected)

Poniższy przykład wykonuje wrażliwe przypadek wyszukiwanie ciąg 'TEST' w 'Das jst ein Test'.

USE tempdb;
GO
--perform a case sensitive search
SELECT CHARINDEX ( 'TEST',
       'Das ist ein Test'
       COLLATE Latin1_General_CS_AS)

Oto zestaw wyników.

----------- 
0          

Poniższy przykład wykonuje wrażliwe przypadek wyszukiwanie ciąg 'Test' w 'Das jst ein Test'.

USE tempdb;
GO
SELECT CHARINDEX ( 'Test',
       'Das ist ein Test'
       COLLATE Latin1_General_CS_AS)

Oto zestaw wyników.

----------- 
13          

Poniższy przykład powoduje niewrażliwe przypadek wyszukiwanie ciąg 'TEST' w 'Das jst ein Test'.

USE tempdb;
GO
SELECT CHARINDEX ( 'Test',
       'Das ist ein Test'
       COLLATE Latin1_General_CI_AS)
GO

Oto zestaw wyników.

----------- 
13