Sellaisenaan merkkijonojen käsittely on yleinen tehtävä, joka sisältää merkkijonoarvojen manipuloinnin ja muuntamisen tiettyyn muotoon.
Yksi SQL:n tehokkaimmista merkkijonotoimintoja käsittelevistä funktioista on REGEXP_REPLACE()-funktio. Tämän toiminnon avulla voimme suorittaa säännölliseen lausekkeeseen perustuvan haun ja korvauksen. Jos olet perehtynyt säännölliseen lausekkeeseen, tiedät kuinka tehokas tämä funktio voi olla.
Tässä opetusohjelmassa opimme, kuinka voimme käyttää tätä toimintoa merkkijonojen etsimiseen ja korvaamiseen SQL-tietokannasta.
SQL REGEXP_REPLACE
SQL REGEXP_REPLACE() on funktio, jonka avulla voimme suorittaa säännölliseen lausekkeeseen perustuvan kuvion sovituksen ja korvauksen tietyn merkkijonon sisällä.
Säännöllinen lauseke tai säännöllinen lauseke on asetettu malli ja paikkamerkit, joiden avulla voimme sovittaa ja muokata merkkijonoja tai alimerkkijonoja, jotka noudattavat tiettyä kaavaa.
On hyvä pitää mielessä, että jokainen tietokantakone saattaa hieman toteuttaa funktion syntaksia ja toimintoja.
Voimme kuitenkin ilmaista sen syntaksin seuraavasti:
REGEXP_REPLACE(syöttömerkkijono, kuvio, korvaava [, liput])
Toimintoparametrit ilmaistaan seuraavasti:
- input_string – Tämä määrittää merkkijonon, josta haluamme etsiä ja korvata.
- Pattern – Tämä määrittää säännöllisen lausekkeen mallin, jonka haluamme sopia syötemerkkijonossa.
- Korvaaminen – Tämä määrittää merkkijonon, joka korvaa vastaavat osamerkkijonot.
- Liput – joukko valinnaisia lippuja, jotka voivat auttaa muokkaamaan säännöllisen lausekkeen toimivuutta. Voimme esimerkiksi ottaa käyttöön yleisen haun, kirjainkoolla välittömän vastaavuuden jne. Tämä ominaisuus vaihtelee tietokantakoneen mukaan.
Esimerkkejä:
Ymmärtääksemme paremmin, kuinka tämä toiminto toimii, katsokaamme joitain esimerkkejä sen käytöstä.
Esimerkki 1: Peruskäyttö
Oletetaan, että meillä on taulukko, joka sisältää työntekijätiedot seuraavan esimerkkitulosteen mukaisesti:
Harkitse tapausta, jossa haluamme korvata 'Charlie'-merkkijonon esiintymisen 'Matthew'. Voimme käyttää kyselyä seuraavasti:
VALITSEREGEXP_REPLACE(etunimi, 'Charlie', 'Matthew') AS uusi_nimi
FROM
työntekijät;
Annettu esimerkki havainnollistaa perushaun ja korvaamisen löytääksesi 'Charlie'-merkkijonon 'first_name'-sarakkeesta ja korvaamalla sen sanalla 'Matthew'.
Lähtö:
Esimerkki 2: Kirjainkoolla välitön vaihto
Joissakin tapauksissa saatat haluta suorittaa haun, jossa kirjainkoko ei eroa. Tämä tarkoittaa, että toiminto tarkastelee vain merkkijonon sisältöä, ei aakkosnumeeristen kirjainten todellista koteloa.
Tässä tapauksessa käytämme 'i' funktiolippuna seuraavasti:
SELECT REGEXP_REPLACE(tuotteen_kuvaus, Samsung, Apple, 'i') AS muokattuFROM tuotteet;
Asettamalla lipun arvoon 'i', toiminto vastaa kaikkia sanoja, jotka vastaavat sanaa 'Samsung', isosta kirjaimesta riippumatta.
Johtopäätös
Tässä esimerkissä tutkimme, kuinka REGEXP_REPLACE()-funktiota käytetään säännölliseen lausekkeeseen perustuvan haun ja korvauksen suorittamiseksi.