Asendage string SQL-is

Asendage String Sql Is



Tekstiandmed või stringid, nagu arendajad neid nimetavad, on mis tahes funktsionaalse programmi peamine ehitusplokk. See ei erine andmete salvestamisel. Peaaegu kõik andmebaasid sisaldavad teatud kujul tekstiteavet, nagu nimed, logid jne.

Sellisena on stringidega manipuleerimine tavaline ülesanne, mis hõlmab stringiväärtuste manipuleerimist ja teisendamist kindlasse vormingusse.

Üks võimsamaid SQL-i funktsioone, mis tegeleb stringitoimingutega, on funktsioon REGEXP_REPLACE(). See funktsioon võimaldab meil teostada regulaaravaldisepõhist otsingut ja asendamist. Kui olete regulaaravaldisega tuttav, teate, kui võimas see funktsioon võib olla.







Selles õpetuses õpime, kuidas saame seda funktsiooni kasutada stringide otsimiseks ja asendamiseks SQL-andmebaasis.



SQL REGEXP_REPLACE

SQL REGEXP_REPLACE() on funktsioon, mis võimaldab meil teostada regulaaravaldisepõhist mustri sobitamist ja asendamist antud stringi piires.



Regulaaravaldis ehk regex on seatud muster ja kohahoidjad, mis võimaldavad meil sobitada ja manipuleerida stringe või alamstringe, mis järgivad kindlat mustrit.





Hea on meeles pidada, et iga andmebaasimootor võib funktsiooni süntaksit ja funktsionaalsust veidi rakendada.

Selle süntaksi saame aga väljendada järgmiselt:



REGEXP_REPLACE(sisendstring, muster, asendus [, lipud])

Funktsiooni parameetrid on väljendatud järgmiselt:

  1. input_string – see määrab stringi, milles soovime otsida ja asendada.
  2. Muster – see määrab regulaaravaldise mustri, mida tahame sisendstringis sobitada.
  3. Asendus – see määrab stringi, mis asendab sobitatud alamstringid.
  4. Lipud – valikuliste lippude komplekt, mis võib aidata regulaaravaldise funktsionaalsust muuta. Näiteks saame lubada globaalse otsingu, tõstutundliku sobitamise jne. See funktsioon sõltub andmebaasimootorist.

Näited:

Et paremini mõista, kuidas see funktsioon toimib, vaatame mõningaid selle kasutamise näiteid.

Näide 1: Põhikasutus

Oletame, et meil on tabel, mis sisaldab töötaja teavet, nagu on näidatud järgmises näiteväljundis:

Mõelge juhtumile, kus tahame asendada 'Charlie' stringi esinemisega 'Matthew'. Päringut saame kasutada järgmiselt:

VALI

REGEXP_REPLACE(eesnimi, 'Charlie', 'Matthew') AS uus_nimi

FROM

töötajad;

Antud näide demonstreerib tavalist otsingut ja asendamist, et leida veerust 'eesnimi' string 'Charlie' ja asendada see tekstiga 'Matthew'.

Väljund:

Näide 2: tõstutundlik asendamine

Mõnel juhul võite soovida teostada tõstutundlikku otsingut. See tähendab, et funktsioon vaatab ainult stringi sisu, mitte aga tähtnumbriliste tähtede tegelikku suurtähte.

Sellisel juhul kasutame funktsiooni lipuna 'i' järgmiselt:

SELECT REGEXP_REPLACE(toote_kirjeldus, Samsung, Apple, 'i') AS muudetud

toodetest;

Seades lipu väärtusele i, vastab funktsioon kõikidele sõnadele, mis vastavad sõnale Samsung, olenemata suurtähtedest.

Järeldus

Selles näites uurisime, kuidas kasutada ja töötada funktsiooni REGEXP_REPLACE() abil regulaaravaldise mustripõhise otsingu ja asendamise teostamiseks.