Articles

SQL Server PATINDEX-funktio

yhteenveto: tässä opetusohjelmassa olet oppinut käyttämään SQL Server PATINDEX() funktiota kuvion sijainnin löytämiseksi merkkijonossa.

SQL Server PATINDEX() overview

PATINDEX() funktio palauttaa merkkijonossa olevan kuvion ensimmäisen esiintymisen sijainnin. PATINDEX() funktion syntaksi on seuraava:

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

PATINDEX() funktio hyväksyy kaksi parametria:

  • pattern on hahmolauseke. Se voi sisältää jokerimerkkejä, kuten % ja '_' kuviossa. Jokerimerkkien merkitykset ovat samat kuin niitä käytetään LIKEoperaattori.
  • input_string on merkkijono, josta etsittävä kuvio.

PATINDEX() palauttaa kokonaisluvun, joka määrittää patterninput_string eli nollan kuvion, jota ei löydy. PATINDEX() funktio palauttaa nollan, jos jokopattern taiinput_string on nolla.

huomaa, että PATINDEX() etsii kuviota syötön kollaasin perusteella. Jos haluat käyttää tiettyä vertailua, voit käyttääCOLLATE lauseketta eksplisiittisesti.

SQL Server PATINDEX () – funktioesimerkkejä

Otetaanpa joitakin esimerkkejä PATINDEX() – funktion käytöstä.

A) SQL Server PATINDEX() yksinkertainen esimerkki

Tämä esimerkki palauttaa substraatin lähtökohdan 'ern' merkkijonossa 'SQL Pattern Index':

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

tässä on tuloste:

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

b) käyttämällä SQL Server PATINDEX-palvelinta (), jossa on useita yleismerkkejä esimerkkinä

Tämä esimerkki käyttää % ja _ yleismerkkejä löytääkseen paikan, jossa kuvio 'f', jota seuraa mikä tahansa kaksi merkkiä ja 'ction' alkaa 'SQL Server String Function' merkkijono:

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

lähtö on seuraava:

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

C) käyttäen SQL Server PATINDEX () – funktiota taulukon sarakeesimerkillä

Tämä esimerkki löytää kuvion ensimmäisen esiintymän paikan 2018 arvoissa product_name sarake production.products taulukko otostietokannasta.

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)

seuraavassa kuvassa näkyy osittaistulos:

SQL Server PATINDEX-Funktioesimerkki

tässä tutoriaalissa olet oppinut käyttämään SQL Serveriä PATINDEX() funktio löytää ensimmäisen esiintymän sijainnin kuvio narussa.