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:
Code language: SQL (Structured Query Language) (sql)PATINDEX ( '%pattern%' , input_string )
funkcjaPATINDEX() przyjmuje dwa argumenty:
-
patternjest 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_stringjest 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':
Code language: SQL (Structured Query Language) (sql)SELECT PATINDEX('%ern%', 'SQL Pattern Index') position;
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:
Code language: SQL (Structured Query Language) (sql)SELECT PATINDEX('%f__ction%', 'SQL Server String Function') position;
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.
Code language: SQL (Structured Query Language) (sql)SELECT product_name, PATINDEX('%2018%', product_name) positionFROM production.productsWHERE product_name LIKE '%2018%'ORDER BY product_name;
poniższy rysunek pokazuje częściowe wyjście:

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