Kao takva, manipulacija nizom je uobičajen zadatak koji uključuje manipulaciju i transformaciju vrijednosti niza u određeni format.
Jedna od najmoćnijih funkcija u SQL-u koja se bavi operacijama nizova je funkcija REGEXP_REPLACE(). Ova nam funkcija omogućuje izvođenje pretraživanja i zamjene temeljenog na regularnom izrazu. Ako ste upoznati s regularnim izrazom, znate koliko moćna ova funkcija može biti.
U ovom vodiču naučit ćemo kako možemo koristiti ovu funkciju za pretraživanje i zamjenu nizova u SQL bazi podataka.
SQL REGEXP_REPLACE
SQL REGEXP_REPLACE() je funkcija koja nam omogućuje izvođenje podudaranja i zamjene uzorka temeljenog na regularnom izrazu unutar zadanog niza.
Regularni izraz ili regularni izraz je postavljeni uzorak i rezervirana mjesta koji nam omogućuju podudaranje i manipuliranje nizovima ili podnizovima koji slijede određeni obrazac.
Dobro je imati na umu da svaki motor baze podataka može malo implementirati sintaksu i funkcionalnost funkcije.
Međutim, njegovu sintaksu možemo izraziti na sljedeći način:
REGEXP_REPLACE(ulazni_niz, uzorak, zamjena [, zastavice])
Parametri funkcije izraženi su kako slijedi:
- input_string – Ovo specificira niz unutar kojeg želimo pretraživati i zamijeniti.
- Uzorak – Ovo specificira uzorak regularnog izraza koji želimo uskladiti unutar ulaznog niza.
- Zamjena – Ovo specificira niz koji zamjenjuje podudarne podnizove.
- Zastavice – Skup neobaveznih zastavica koje mogu pomoći u modificiranju funkcionalnosti regularnog izraza. Na primjer, možemo omogućiti globalno pretraživanje, podudaranje bez obzira na velika i mala slova, itd. Ova se značajka razlikuje ovisno o pogonu baze podataka.
Primjeri:
Da bismo bolje razumjeli kako ova funkcija radi, pogledajmo neke primjere kako je koristiti.
Primjer 1: Osnovna upotreba
Pretpostavimo da imamo tablicu koja sadrži podatke o zaposleniku kao što je prikazano u sljedećem primjeru izlaza:
Razmotrimo slučaj u kojem želimo zamijeniti niz 'Charlie' u 'Matthew'. Upit možemo koristiti na sljedeći način:
IZABERIREGEXP_REPLACE(first_name, 'Charlie', 'Matthew') AS new_name
IZ
zaposlenici;
Navedeni primjer pokazuje osnovno pretraživanje i zamjenu za pronalaženje niza 'Charlie' iz stupca 'first_name' i njegovu zamjenu s 'Matthew'.
Izlaz:
Primjer 2: Zamjena bez obzira na velika i mala slova
U nekim slučajevima možda ćete htjeti izvršiti pretraživanje bez obzira na velika i mala slova. To znači da će funkcija gledati samo sadržaj niza, a ne stvarna velika i mala slova alfanumeričkih slova.
U tom slučaju koristimo 'i' kao oznaku funkcije na sljedeći način:
SELECT REGEXP_REPLACE(product_description, Samsung, Apple, 'i') AS modifiedOD proizvoda;
Postavljanjem zastavice na 'i', funkcija odgovara svim riječima koje odgovaraju 'Samsung', bez obzira na velika i mala slova.
Zaključak
U ovom smo primjeru istražili kako koristiti i raditi s funkcijom REGEXP_REPLACE() za izvođenje pretraživanja i zamjene na temelju uzorka regularnog izraza.