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:
-
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'
:
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