SQL Server PATINDEX-funktion

Sql Server Patindex Funktion



Denna handledning syftar till att vägleda dig i att förstå hur du använder PATINDEX-funktionen i SQL Server. Denna funktion låter dig bestämma startpositionen för ett mönster i ett givet inmatningsuttryck.

SQL Server Patindex() Funktion

Följande kodavsnitt definierar syntaxen för funktionen PATINDEX() i SQL Server:







PATINDEX ( '%mönster%' , uttryck )



Argumenten utforskas nedan:



  1. mönster – detta argument definierar teckenuttrycket som ska sökas i uttrycket. Detta värde stöder jokertecken som % och _. Funktionen kommer att tillämpa jokertecken på samma sätt som LIKE-operatorn. Du kan bara ange högst 8000 tecken.
  2. uttryck – detta definierar uttrycket där mönstret söks. Detta kan vara ett bokstavligt värde eller en kolumn.

Funktionen kommer då att returnera ett heltalsvärde som anger startpositionen för det första förekomstmönstret i uttrycket. Om mönstret inte finns i uttrycket returnerar funktionen 0.





Om något av de obligatoriska argumenten är NULL, returnerar funktionen automatiskt NULL.

Exempel på användning

Följande exempel illustrerar hur du använder funktionen patindex() i SQL Server.



Exempel 1 – Grundläggande användning

Nedan är en demonstration av den grundläggande användningen av patindex()-funktionen.

Välj patindex ( '%bits%' , 'https://geekbits.io' ) som pos;

Detta bör returnera startpositionen för det hittade mönstret som:

pos
13

Exempel 2

I exemplet nedan använder vi patindex()-funktionen med flera jokertecken.

Välj patindex ( '%g__k%' , 'https://geekbits.io' ) som pos;

I det här fallet bör funktionen returnera:

pos
9

Exempel 3 – Använda funktionen Patindex() med komplext mönster

Vi kan också skicka ett komplext reguljärt uttryck som mönstret i patindex-funktionen som visas:

Välj patindex ( '%[^0-9A-Za-z]%' , 'Välkommen till Linuxhint!!' ) som match;

Resultat:

match
tjugoett

Exempel 4 – Använda Patindex-funktionen med kolumn

Anta att vi har en tabell som illustreras nedan:

Vi kan använda patindex()-funktionen för att söka efter matchande mönster i kolumnen produktnamn som visas i frågan nedan:

Välj produktnamn, tillverkare, patindex ( '%2022%' , produktnamn ) plats
från produkter

Detta bör returnera positionen för det matchande mönstret som visas:

Slutsats

I den här handledningen täckte vi grunderna för att arbeta med PATINDEX()-funktionen i SQL Server.