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:
Code language: SQL (Structured Query Language) (sql)PATINDEX ( '%pattern%' , input_string )
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 pattern
ellerinput_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'
:
Code language: SQL (Structured Query Language) (sql)SELECT PATINDEX('%ern%', 'SQL Pattern Index') position;
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:
Code language: SQL (Structured Query Language) (sql)SELECT PATINDEX('%f__ction%', 'SQL Server String Function') position;
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.
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ølgende bilde viser delvis utgang:
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.
Leave a Reply