SQLite replace()
Funkce nám umožňuje nahradit jeden řetězec (nebo část řetězce) jiným řetězcem.
Funguje to tak, že poskytnete tři argumenty; řetězec, který obsahuje podřetězec, který má být nahrazen, podřetězec v tomto řetězci, který se má nahradit, a řetězec, kterým se má nahradit.
Syntaxe
Syntaxe vypadá takto:
replace(X,Y,Z)
Funkce vrací řetězec vytvořený nahrazením řetězce Z za každý výskyt řetězce Y v řetězci X.
BINARY porovnávací sekvence se používá pro srovnání. Pokud je Y prázdný řetězec, vraťte X beze změny. Pokud Z není původně řetězec, je před zpracováním přetypován na řetězec UTF-8.
Příklad
Zde je jednoduchý příklad k demonstraci.
SELECT replace('Red Sky', 'Red', 'Blue');
Výsledek:
Blue Sky
Pokud druhý argument není nalezen v prvním argumentu, pak se nic nenahradí a vrátí se původní řetězec.
SELECT replace('Red Sky', 'Green', 'Blue');
Výsledek:
Red Sky
Pokud je druhý argument prázdný řetězec, pak se opět nic nenahradí a vrátí se původní řetězec.
SELECT replace('Red Sky', '', 'Blue');
Výsledek:
Red Sky
Ale totéž nelze říci o třetím argumentu. Pokud je to prázdný řetězec (a druhý argument se nachází v prvním argumentu), odstraní z řetězce druhý argument.
SELECT replace('Red Sky', 'Red', '');
Výsledek:
Sky
To se však nestane, pokud druhý argument nebude v řetězci nalezen.
SELECT replace('Red Sky', 'Blue', '');
Výsledek:
Red Sky
Nahrazení neřetězcem
Pokud třetí argument není řetězec, je před zpracováním přetypován na řetězec UTF-8.
SELECT replace('Red Sky', 'Red', 8);
Výsledek:
8 Sky
Příklad databáze
Zde je příklad, který vezme data z databázové tabulky a nahradí daný řetězec/podřetězec jiným řetězcem.
SELECT
ProductName,
replace(ProductName, 'Widget', 'Car')
FROM Products;
Výsledek:
ProductName replace(ProductName, 'Widget', 'Car') -------------- ------------------------------------- Homer's Widget Homer's Car Peter's Widget Peter's Car Bob's Widget Bob's Car