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:
Code language: SQL (Structured Query Language) (sql)PATINDEX ( '%pattern%' , input_string )
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 medLIKE
operatö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'
:
Code language: SQL (Structured Query Language) (sql)SELECT PATINDEX('%ern%', 'SQL Pattern Index') position;
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:
Code language: SQL (Structured Query Language) (sql)SELECT PATINDEX('%f__ction%', 'SQL Server String Function') position;
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.
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;
följande bild visar den partiella utgången:
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.
Leave a Reply