Articles

SQL Server PATINDEX functie

samenvatting: in deze tutorial hebt u geleerd hoe u de SQL Server PATINDEX() functie kunt gebruiken om de positie van een patroon in een string te vinden.

SQL Server PATINDEX() overview

de functie PATINDEX() geeft de positie van het eerste voorkomen van een patroon in een string. De syntaxis van de functie PATINDEX() is als volgt:

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

de functie PATINDEX() accepteert twee argumenten:

  • pattern is een tekenuitdrukking die gevonden kan worden. Het kan jokertekens bevatten zoals % en '_' in het patroon. De Betekenis van de jokertekens is dezelfde als die van de operator LIKE.
  • input_string is een tekenreeks waarin het te doorzoeken patroon wordt weergegeven.

de PATINDEX() geeft een geheel getal terug dat de positie specificeert van het eerste voorkomen van de pattern in de input_string, of nul van het niet gevonden patroon. De functie PATINDEX() geeft NULL terug als pattern of input_string NULL is.

merk op dat dePATINDEX() zoekt naar het patroon op basis van de collatie van de invoer. Als u een specifieke collatie wilt gebruiken, kunt u de COLLATE clausule expliciet gebruiken.

SQL Server PATINDEX() functievoorbeelden

laten we enkele voorbeelden nemen van het gebruik van dePATINDEX() functie.

a) SQL Server PATINDEX() eenvoudig voorbeeld

dit voorbeeld geeft de beginpositie van de substring 'ern' in de string 'SQL Pattern Index':

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

Hier is de uitvoer:

position-----------9(1 row affected)

B) met Behulp van SQL Server PATINDEX() met meerdere wildcards voorbeeld

Dit voorbeeld gebruikt % en _ wildcards te vinden van de positie waarop de patroon 'f', gevolgd door twee tekens en 'ction' start de 'SQL Server String Function' string:

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

De output is als volgt:

Position-----------19(1 row affected)

C) met behulp van SQL Server PATINDEX() functie met tabelkolom voorbeeld

dit voorbeeld vindt de positie van het eerste voorkomen van het patroon 2018 In waarden van de product_name kolom in de production.products tabel uit de steekproefdatabase.

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)

de volgende afbeelding toont de gedeeltelijke uitvoer:

SQL Server PATINDEX functie voorbeeld

in deze handleiding hebt u geleerd hoe u de SQL Server PATINDEX() functie kunt gebruiken om de positie van het eerste voorkomen van een patroon in een tekenreeks te vinden.