Articles

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

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

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átoru LIKE.
  • 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 patterninput_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':

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

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:

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

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.

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)

následující obrázek ukazuje částečný výstup:

SQL Server Funkce PATINDEX Příklad

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.