Ako taká je manipulácia s reťazcami bežnou úlohou, ktorá zahŕňa manipuláciu a transformáciu hodnôt reťazcov do špecifického formátu.
Jednou z najvýkonnejších funkcií v SQL, ktorá sa zaoberá operáciami s reťazcami, je funkcia REGEXP_REPLACE(). Táto funkcia nám umožňuje vykonávať vyhľadávanie a nahradzovanie založené na regulárnych výrazoch. Ak poznáte regulárny výraz, viete, aká silná môže byť táto funkcia.
V tomto návode sa naučíme, ako môžeme použiť túto funkciu na vyhľadávanie a nahradzovanie reťazcov v databáze SQL.
SQL REGEXP_REPLACE
SQL REGEXP_REPLACE() je funkcia, ktorá nám umožňuje vykonávať porovnávanie a nahradzovanie vzorov na základe regulárneho výrazu v rámci daného reťazca.
Regulárny výraz alebo regulárny výraz je nastavený vzor a zástupné symboly, ktoré nám umožňujú porovnávať a manipulovať s reťazcami alebo podreťazcami, ktoré sledujú konkrétny vzor.
Je dobré mať na pamäti, že každý databázový stroj môže mierne implementovať syntax a funkčnosť funkcie.
Jeho syntax však môžeme vyjadriť takto:
REGEXP_REPLACE(vstupný_reťazec, vzor, nahradenie [, príznaky])
Parametre funkcie sú vyjadrené nasledovne:
- input_string – Špecifikuje reťazec, v ktorom chceme hľadať a nahradiť.
- Vzor – Špecifikuje vzor regulárneho výrazu, ktorý chceme zhodovať v rámci vstupného reťazca.
- Náhrada – určuje reťazec, ktorý nahradí zhodné podreťazce.
- Príznaky – Ide o sadu voliteľných príznakov, ktoré môžu pomôcť upraviť funkčnosť regulárneho výrazu. Napríklad môžeme povoliť globálne vyhľadávanie, rozlišovanie malých a veľkých písmen atď. Táto funkcia sa líši v závislosti od databázového nástroja.
Príklady:
Aby sme lepšie pochopili, ako táto funkcia funguje, pozrime sa na niekoľko príkladov jej použitia.
Príklad 1: Základné použitie
Predpokladajme, že máme tabuľku, ktorá obsahuje informácie o zamestnancovi, ako je znázornené v nasledujúcom príklade výstupu:
Zvážte prípad, keď chceme nahradiť výskyt reťazca „Charlie“ na „Matthew“. Dotaz môžeme použiť nasledovne:
VYBRAŤREGEXP_REPLACE(first_name, 'Charlie', 'Matthew') AS new_name
OD
zamestnancov;
Uvedený príklad demonštruje základné vyhľadávanie a nahradenie na nájdenie reťazca „Charlie“ zo stĺpca „first_name“ a jeho nahradenie reťazcom „Matthew“.
Výkon:
Príklad 2: Výmena bez ohľadu na veľkosť písmen
V niektorých prípadoch možno budete chcieť vykonať vyhľadávanie bez ohľadu na veľkosť písmen. To znamená, že funkcia sa bude pozerať iba na obsah reťazca a nie na skutočné veľké a malé písmená v alfanumerických písmenách.
V takom prípade používame „i“ ako príznak funkcie takto:
SELECT REGEXP_REPLACE(popis_produktu, Samsung, Apple, 'i') AKO upravenéZ produktov;
Nastavením príznaku na „i“ funkcia priradí všetky slová, ktoré zodpovedajú výrazu „Samsung“, bez ohľadu na veľké a malé písmená.
Záver
V tomto príklade sme skúmali, ako používať funkciu REGEXP_REPLACE() a pracovať s ňou na vykonávanie vyhľadávania a nahrádzania na základe vzoru regulárneho výrazu.