Articles

SQL Server PATINDEX funktion

sammanfattning: i denna handledning har du lärt dig hur du använder SQL ServerPATINDEX() funktion för att hitta positionen för ett mönster i en sträng.

SQL Server PATINDEX() översikt

funktionenPATINDEX() returnerar positionen för den första förekomsten av ett mönster i en sträng. Syntaxen förPATINDEX() funktionen är som följer:

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

PATINDEX() funktionen accepterar två argument:

  • pattern är ett teckenuttryck som finns. Den kan innehålla jokertecken som % och '_' I mönstret. Betydelsen av Jokertecken är desamma som de används med LIKEoperatör.
  • input_string är en teckensträng där mönstret som ska sökas.

PATINDEX() returnerar ett heltal som anger positionen för den första förekomsten avpattern Iinput_string, eller noll av mönstret hittades inte. FunktionenPATINDEX() returnerar NULL om antingenpattern ellerinput_string är NULL.

Observera att PATINDEX() söker efter mönstret baserat på inmatningens sortering. Om du vill använda en specifik sortering kan du använda COLLATE klausulen uttryckligen.

SQL Server PATINDEX() funktionsexempel

Låt oss ta några exempel på att använda funktionenPATINDEX().

A) SQL Server PATINDEX () enkelt exempel

detta exempel returnerar startpositionen för substringen 'ern' I strängen 'SQL Pattern Index':

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

här är utmatningen:

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

B) använda SQL Server PATINDEX() med flera jokertecken exempel

detta exempel använder % och _ jokertecken för att hitta den position där mönstret 'f', följt av två tecken och 'ction' startar i 'SQL Server String Function' sträng:

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

utgången är som följer:

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

C) använda SQL Server PATINDEX () – funktionen med tabellkolumnexempel

detta exempel hittar positionen för den första förekomsten av mönstret 2018 I värdena för product_name kolumnen i production.products tabell från provdatabasen.

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)

följande bild visar den partiella utgången:

SQL Server PATINDEX Funktionsexempel

i denna handledning har du lärt dig hur du använder SQL Server PATINDEX() funktion för att hitta positionen för den första förekomsten av ett mönster i en sträng.