Articles

SQL Server patindex funcție

rezumat: în acest tutorial, ați învățat cum să utilizați SQL ServerPATINDEX() funcția pentru a găsi poziția unui model într-un șir.

SQL Server PATINDEX() prezentare generală

PATINDEX() funcția returnează poziția primei apariții a unui model într-un șir. SintaxaPATINDEX() funcția este după cum urmează:

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

PATINDEX() funcția acceptă două argumente:

  • pattern este o expresie de caracter care trebuie găsită. Poate conține caractere wildcard precum % și '_' în model. Semnificațiile metacaracterelor sunt aceleași cu cele utilizate cu operatorul LIKE.
  • input_string este un șir de caractere în care modelul de căutat.

PATINDEX() returnează un număr întreg care specifică poziția primei apariții apattern îninput_string sau zero a modelului care nu a fost găsit. PATINDEX() funcția va reveni NULL dacă fie pattern sau input_string este NULL.

rețineți că PATINDEX() caută modelul pe baza colaționării intrării. Dacă doriți să utilizați o anumită colaționare, puteți utiliza în mod explicit clauzaCOLLATE.

SQL Server PATINDEX() Exemple de funcții

să luăm câteva exemple de utilizare a funcțieiPATINDEX().

A) SQL Server PATINDEX () exemplu simplu

acest exemplu returnează poziția de pornire a subșirului'ern' în șirul'SQL Pattern Index':

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

aici este ieșirea:

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

B) folosind SQL Server PATINDEX() cu mai multe metacaractere exemplu

Acest exemplu utilizează % și _ metacaractere pentru a găsi poziția la care modelul 'f', urmat de oricare două caractere și 'ction' începe în 'SQL Server String Function' șir:

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

ieșirea este după cum urmează:

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

C) folosind SQL Server PATINDEX() funcția cu tabel coloana exemplu

Acest exemplu găsește poziția de prima apariție a modelului 2018 în valorile product_name coloana în production.products tabel din baza de date eșantion.

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)

următoarea imagine arată ieșirea parțială:

exemplu de funcție SQL Server PATINDEX

în acest tutorial, ați învățat cum să utilizați SQL ServerPATINDEX() funcția pentru a găsi poziția primei apariții a un model într-un șir.