SQL REGEXP_REPLACE

Sql Regexp Replace



Textové dáta alebo reťazce, ako ich nazývajú vývojári, sú hlavným stavebným kameňom každého funkčného programu. Nie je tomu inak ani pri ukladaní údajov. Takmer všetky databázy obsahujú nejakú formu textových informácií, ako sú mená, protokoly atď.

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:

  1. input_string – Špecifikuje reťazec, v ktorom chceme hľadať a nahradiť.
  2. Vzor – Špecifikuje vzor regulárneho výrazu, ktorý chceme zhodovať v rámci vstupného reťazca.
  3. Náhrada – určuje reťazec, ktorý nahradí zhodné podreťazce.
  4. 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.