Articles

SQL Server PATINDEX funksjon

Sammendrag: i denne opplæringen har du lært hvordan DU bruker SQL Server PATINDEX() funksjon for å finne posisjonen til et mønster i en streng.

SQL Server PATINDEX () oversikt

funksjonen PATINDEX() returnerer posisjonen til den første forekomsten av et mønster i en streng. Syntaksen tilPATINDEX() – funksjonen er som følger:

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

PATINDEX() – funksjonen godtar to argumenter:

  • pattern er et tegnuttrykk som finnes. Den kan inneholde jokertegn som % og '_' i mønsteret. Betydningen av jokertegn er den samme som de brukes med operatorenLIKE.
  • input_string er en tegnstreng der mønsteret skal søkes.

PATINDEX() returnerer et heltall som angir posisjonen til den første forekomsten av pattern i input_string, eller null av mønsteret ikke funnet. PATINDEX() – funksjonen returnerer NULL HVIS enten patternellerinput_string ER NULL.

Merk at PATINDEX() søker etter mønsteret basert på sortering av inngangen. Hvis du vil bruke en bestemt sortering, kan du brukeCOLLATE – klausulen eksplisitt.

SQL Server PATINDEX () funksjon eksempler

La oss ta noen eksempler på bruk avPATINDEX() funksjon.

A) SQL Server PATINDEX () enkelt eksempel

dette eksemplet returnerer startposisjonen til substringen 'ern' i strengen 'SQL Pattern Index':

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

her er utdataene:

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

B) VED HJELP AV SQL Server PATINDEX() med flere jokertegn eksempel

dette eksemplet bruker % og _ jokertegn for å finne posisjonen der mønsteret 'f', etterfulgt av to tegn og 'ction' starter i 'SQL Server String Function' streng:

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

utgangen er som følger:

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

c) VED HJELP AV SQL Server PATINDEX() funksjon med tabell kolonne eksempel

dette eksemplet finner posisjonen til den første forekomsten av mønsteret 2018 i verdier av product_name kolonne i production.products tabell fra eksempeldatabasen.

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ølgende bilde viser delvis utgang:

EKSEMPEL PÅ SQL Server PATINDEX-Funksjon

I denne opplæringen har du lært HVORDAN DU bruker SQL ServerPATINDEX() funksjon for å finne posisjonen til den første forekomsten av et mønster i en streng.