SQL Server funkce PATINDEX
Shrnutí: v tomto kurzu jste se naučili, jak používat SQL Server PATINDEX()
funkce najít pozici vzoru v řetězci.
SQL Server PATINDEX() přehled
PATINDEX()
funkce vrátí pozici prvního výskytu vzoru v řetězci. Syntaxe PATINDEX()
funkce je následující:
Code language: SQL (Structured Query Language) (sql)PATINDEX ( '%pattern%' , input_string )
PATINDEX()
funkce přijímá dva argumenty:
-
pattern
je znakový výraz, který se nachází. Může obsahovat zástupné znaky jako%
a'_'
ve vzoru. Významy zástupných znaků jsou stejné jako u operátoruLIKE
. -
input_string
je řetězec znaků, ve kterém má být prohledáván vzor.
PATINDEX()
vrátí celé číslo, které určuje pozici prvního výskytu pattern
input_string
, nebo žádné vzoru nebyl nalezen. Funkce PATINDEX()
vrátí hodnotu NULL, pokud je pattern
nebo input_string
NULL.
Všimněte si, že PATINDEX()
hledá vzor na základě řazení vstupu. Pokud chcete použít konkrétní řazení, můžete použít klauzuli COLLATE
explicitně.
SQL Server PATINDEX () příklady funkcí
Vezměme si několik příkladů použití funkce PATINDEX()
.
) SQL Server PATINDEX() jednoduchý příklad
Tento příklad vrátí výchozí polohy podřetězec 'ern'
string 'SQL Pattern Index'
:
Code language: SQL (Structured Query Language) (sql)SELECT PATINDEX('%ern%', 'SQL Pattern Index') position;
Zde je výstup:
position-----------9(1 row affected)
B) Pomocí SQL Server PATINDEX() s více zástupných znaků příklad:
Tento příklad používá %
_
zástupné znaky najít polohu, v níž vzor 'f'
, následuje jakékoliv dva znaky, a 'ction'
začíná v 'SQL Server String Function'
řetězec:
Code language: SQL (Structured Query Language) (sql)SELECT PATINDEX('%f__ction%', 'SQL Server String Function') position;
výstup je následující:
Position-----------19(1 row affected)
C) Pomocí SQL Server PATINDEX() funkce s sloupce tabulky příklad:
Tento příklad vyhledá pozici prvního výskytu vzor 2018
hodnoty product_name
sloupce v production.products
tabulky z ukázkové databáze.
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;
následující obrázek ukazuje částečný výstup:
V tomto kurzu jste se naučili, jak používat SQL Server PATINDEX()
funkce najít pozici prvního výskytu vzoru v řetězci.
Leave a Reply