T-SQL SQL Server / Funkcja CHARINDEX

Za pomocą funkcji CHARINDEX możemy sprawdzić czy dany łańcuch znaków zawiera jakiś poszukiwany przez nas ciąg znaków. Naszym poszukiwanym ciągiem będzie jakiś tekst. Funkcja ta zwróci nam pozycję pierwszego znaku poszukiwanego tekstu z pierwszego wystąpienia naszego poszukiwanego tekstu. Funkcja CHARINDEX() jest bardzo podobna w działaniu do funkcji PATINDEX(). Różnica między tymi funkcjami polega na tym, że zdefiniowany wzorzec (poszukiwany tekst) w funkcji CHARINDEX() nie może zawierać znaków wieloznacznych a wzorzec w funkcji PATINDEX() może zawierać takie znaki.

Przykład zastosowania funkcji CHARINDEX

Sprawdź czy w zdaniu 'Ala ma kota' znajduje się tekst 'kot' i zwróć pozycję od której zaczyna się ten tekst w zdaniu.

— Dekarujemy sobie łańcuch główny, czyli zdanie 'Ala ma kota'
DECLARE
    @zdanie NVARCHAR(11) = 'Ala ma kota'

SELECT
     CHARINDEX('kot' , @zdanie) as [Pozycja pierwszego wystąpienia ‚kot’]

wynik

Pozycja pierwszego wystąpienia 'kot'

8

dla funkcji CHARINDEX() wielkość znaków w tekście nie ma znaczenia poniżej przykład

DECLARE
    @zdanie NVARCHAR(11) = 'Ala ma kota'

SELECT
     CHARINDEX('KoT' , @zdanie) as [Pozycja pierwszego wystapienia ‚kot’]

Zwróć uwagę, że kot w zdaniu 'Ala ma kota' jest pisany małymi literami, a w funkcji CHARINDEX() chcemy znaleźć ciąg KoT, gdzie K i T pisane są dużymi literami.

wynik

Pozycja pierwszego wystąpienia 'kot'

8

Widzimy więc, że wielkość liter w szukanym wzorcu nie ma znaczenia.


  SQL tutorial. AdventureWorks exercises SQL SERVER