Manipulace s řetězci je jako taková běžným úkolem, který zahrnuje manipulaci a transformaci hodnot řetězců do určitého formátu.
Jednou z nejvýkonnějších funkcí v SQL, která se zabývá operacemi s řetězci, je funkce REGEXP_REPLACE(). Tato funkce nám umožňuje provádět vyhledávání a nahrazování založené na regulárních výrazech. Pokud znáte regulární výraz, víte, jak mocná tato funkce může být.
V tomto tutoriálu se naučíme, jak můžeme tuto funkci použít k vyhledávání a nahrazování řetězců v SQL databázi.
SQL REGEXP_REPLACE
SQL REGEXP_REPLACE() je funkce, která nám umožňuje provádět porovnávání a nahrazování vzorů na základě regulárních výrazů v rámci daného řetězce.
Regulární výraz nebo regulární výraz je soubor vzoru a zástupných symbolů, který nám umožňuje porovnávat a manipulovat s řetězci nebo podřetězci, které sledují konkrétní vzor.
Je dobré mít na paměti, že každý databázový stroj může mírně implementovat syntaxi a funkčnost funkce.
Jeho syntaxi však můžeme vyjádřit takto:
REGEXP_REPLACE(vstupní_řetězec, vzor, nahrazení [, příznaky])
Parametry funkce jsou vyjádřeny následovně:
- input_string – Určuje řetězec, ve kterém chceme hledat a nahrazovat.
- Vzor – Určuje vzor regulárního výrazu, který chceme porovnat ve vstupním řetězci.
- Replacement – Určuje řetězec, který nahradí odpovídající podřetězce.
- Příznaky – Sada volitelných příznaků, které mohou pomoci upravit funkčnost regulárního výrazu. Můžeme například povolit globální vyhledávání, rozlišování malých a velkých písmen atd. Tato funkce se liší v závislosti na databázovém stroji.
Příklady:
Abychom lépe porozuměli tomu, jak tato funkce funguje, podívejme se na několik příkladů, jak ji používat.
Příklad 1: Základní použití
Předpokládejme, že máme tabulku obsahující informace o zaměstnanci, jak je znázorněno v následujícím příkladu výstupu:
Zvažte případ, kdy chceme nahradit výskyt řetězce „Charlie“ na „Matthew“. Dotaz můžeme použít následovně:
VYBRATREGEXP_REPLACE(first_name, 'Charlie', 'Matthew') AS new_name
Z
zaměstnanci;
Uvedený příklad demonstruje základní vyhledávání a nahrazování pro nalezení řetězce „Charlie“ ze sloupce „first_name“ a jeho nahrazení řetězcem „Matthew“.
Výstup:
Příklad 2: Výměna bez ohledu na velikost písmen
V některých případech můžete chtít provést vyhledávání bez rozlišení malých a velkých písmen. To znamená, že funkce se bude dívat pouze na obsah řetězce a ne na skutečné velké a malé písmena alfanumerických písmen.
V takovém případě použijeme „i“ jako příznak funkce následovně:
SELECT REGEXP_REPLACE(popis_produktu, Samsung, Apple, 'i') JAK upravenoZ produktů;
Nastavením příznaku na „i“ funkce porovná všechna slova, která odpovídají výrazu „Samsung“, bez ohledu na velká a malá písmena.
Závěr
V tomto příkladu jsme prozkoumali, jak používat funkci REGEXP_REPLACE() a pracovat s ní k provádění vyhledávání a nahrazování na základě vzoru regulárních výrazů.