Articles

funkcja PATINDEX SQL Server

Podsumowanie: w tym samouczku nauczyłeś się używać funkcji PATINDEX(), aby znaleźć pozycję wzorca w łańcuchu znaków.

SQL Server PATINDEX() przegląd

funkcjaPATINDEX() Zwraca pozycję pierwszego wystąpienia wzorca w łańcuchu. Składnia funkcjiPATINDEX() wygląda następująco:

PATINDEX ( '%pattern%' , input_string )
Code language: SQL (Structured Query Language) (sql)

funkcjaPATINDEX() przyjmuje dwa argumenty:

  • pattern jest wyrażeniem znakowym, które można znaleźć. Może zawierać znaki wieloznaczne, takie jak % I '_' we wzorze. Znaczenie symboli wieloznacznych jest takie samo, jak w przypadku operatoraLIKE.
  • input_string jest ciągiem znaków, w którym szukany jest wzorzec.

PATINDEX() Zwraca liczbę całkowitą, która określa pozycję pierwszego wystąpieniapattern winput_string, lub zero wzorca nie znaleziono. FunkcjaPATINDEX() zwróci wartość NULL, jeślipattern lubinput_string ma wartość NULL.

zauważ, że PATINDEX() szuka wzorca na podstawie zestawienia danych wejściowych. Jeśli chcesz użyć określonego zestawienia, możesz użyć jawnie klauzuliCOLLATE.

SQL Server PATINDEX() przykłady funkcji

weźmy kilka przykładów użycia funkcjiPATINDEX().

a) SQL Server PATINDEX() prosty przykład

Ten przykład zwraca początkową pozycję podłańcucha'ern' w łańcuchu'SQL Pattern Index':

SELECT PATINDEX('%ern%', 'SQL Pattern Index') position;
Code language: SQL (Structured Query Language) (sql)

oto wyjście:

position-----------9(1 row affected)

B) UŻYWANIE SQL Server PATINDEX() z wieloma symbolami wieloznacznymi przykład

Ten przykład używa % I _, aby znaleźć pozycję, w której wzorzec 'f', po których następują dowolne dwa znaki i 'ction' rozpoczyna się w 'SQL Server String Function' łańcuch:

SELECT PATINDEX('%f__ction%', 'SQL Server String Function') position;
Code language: SQL (Structured Query Language) (sql)

wyjście jest następujące:

Position-----------19(1 row affected)

C) Używanie funkcji SQL Server PATINDEX() z tabelą przykład kolumny

Ten przykład znajduje pozycję pierwszego wystąpienia wzorca2018 w wartościach kolumnyproduct_name w kolumnieproduction.products tabela z przykładowej bazy danych.

SELECT product_name, PATINDEX('%2018%', product_name) positionFROM production.productsWHERE product_name LIKE '%2018%'ORDER BY product_name;
Code language: SQL (Structured Query Language) (sql)

poniższy rysunek pokazuje częściowe wyjście:

przykład funkcji PATINDEX SQL Server

w tym samouczku nauczyłeś się używać funkcji SQL ServerPATINDEX(), aby znaleźć pozycję pierwszego wystąpienia PATINDEX.wzór w sznurku.