Mint ilyen, a karakterlánc-manipuláció gyakori feladat, amely magában foglalja a karakterlánc-értékek manipulálását és átalakítását egy adott formátumba.
Az SQL egyik legerősebb, karakterlánc-műveletekkel foglalkozó függvénye a REGEXP_REPLACE() függvény. Ez a funkció lehetővé teszi a reguláris kifejezés alapú keresés és csere végrehajtását. Ha ismeri a reguláris kifejezést, tudja, milyen erős lehet ez a függvény.
Ebben az oktatóanyagban megtudjuk, hogyan használhatjuk ezt a funkciót az SQL-adatbázisban lévő karakterláncok keresésére és cseréjére.
SQL REGEXP_REPLACE
Az SQL REGEXP_REPLACE() egy olyan függvény, amely lehetővé teszi, hogy reguláris kifejezés alapú mintaillesztést és cserét hajtsunk végre egy adott karakterláncon belül.
A reguláris kifejezés vagy a reguláris kifejezés egy beállított minta és helyőrzők, amelyek lehetővé teszik számunkra, hogy egy adott mintát követő karakterláncokat vagy részkarakterláncokat párosítsuk és kezeljük.
Nem árt észben tartani, hogy minden adatbázis-motor némileg megvalósíthatja a függvény szintaxisát és funkcióit.
A szintaxisát azonban a következőképpen fejezhetjük ki:
REGEXP_REPLACE(bemeneti_karakterlánc, minta, helyettesítő [, zászlók])
A funkció paraméterei a következőképpen vannak kifejezve:
- input_string – Megadja azt a karakterláncot, amelyen belül keresni és lecserélni szeretnénk.
- Minta – Megadja azt a reguláris kifejezésmintát, amelyet a bemeneti karakterláncon belül egyeztetni szeretnénk.
- Csere – Megadja azt a karakterláncot, amely lecseréli az egyező részkarakterláncokat.
- Flags – Opcionális jelzők halmaza, amelyek segíthetnek a reguláris kifejezés funkcióinak módosításában. Például engedélyezhetjük a globális keresést, a kis- és nagybetűk megkülönböztetését, stb. Ez a funkció az adatbázis-motortól függően változik.
Példák:
A funkció működésének jobb megértése érdekében nézzünk meg néhány példát a használatára.
1. példa: Alapvető használat
Tegyük fel, hogy van egy táblázatunk, amely az alkalmazottak adatait tartalmazza, ahogy az a következő példakimenetben látható:
Vegyünk egy esetet, amikor a „Charlie” karakterlánc előfordulását „Matthew”-ra szeretnénk cserélni. A lekérdezést a következőképpen használhatjuk:
KIVÁLASZTÁSREGEXP_REPLACE(utónév, 'Charlie', 'Matthew') AS új_név
TÓL TŐL
alkalmazottak;
A megadott példa egy egyszerű keresést és cserét mutat be, hogy megtalálja a „Charlie” karakterláncot a „first_name” oszlopban, és cserélje le a „Matthew”-ra.
Kimenet:
2. példa: Kis- és nagybetűket nem érzékeny csere
Egyes esetekben érdemes lehet kis- és nagybetűket nem érzékeny keresést végezni. Ez azt jelenti, hogy a függvény csak a karakterlánc tartalmát nézi, és nem az alfanumerikus betűk tényleges kis- és nagybetűjét.
Ilyen esetben az „i”-t használjuk függvényjelzőként az alábbiak szerint:
SELECT REGEXP_REPLACE(termékleírás, Samsung, Apple, 'i') AS módosítvaA termékekből;
Ha a jelzőt „i”-re állítja, a funkció a kis- és nagybetűktől függetlenül minden olyan szóra illeszkedik, amely megfelel a „Samsung” szónak.
Következtetés
Ebben a példában megvizsgáltuk, hogyan használhatjuk és dolgozzuk fel a REGEXP_REPLACE() függvényt reguláris kifejezés-minta alapú keresés és csere végrehajtásához.