SQLite replace()
funktion gör det möjligt för oss att ersätta en sträng (eller del av en sträng) med en annan sträng.
Hur det fungerar är att du ger tre argument; strängen som innehåller delsträngen som ska ersättas, delsträngen inom den strängen som ska ersättas och strängen som ska ersättas med.
Syntax
Syntaxen ser ut så här:
replace(X,Y,Z)
Funktionen returnerar en sträng som bildas genom att ersätta sträng Z för varje förekomst av sträng Y i sträng X.
Den BINÄRA sammanställningssekvensen används för jämförelser. Om Y är en tom sträng, returnera X oförändrat. Om Z från början inte är en sträng, castas den till en UTF-8-sträng innan bearbetning.
Exempel
Här är ett enkelt exempel att visa.
SELECT replace('Red Sky', 'Red', 'Blue');
Resultat:
Blue Sky
Om det andra argumentet inte hittas i det första argumentet ersätts ingenting och den ursprungliga strängen returneras.
SELECT replace('Red Sky', 'Green', 'Blue');
Resultat:
Red Sky
Om det andra argumentet är en tom sträng ersätts ingenting och den ursprungliga strängen returneras.
SELECT replace('Red Sky', '', 'Blue');
Resultat:
Red Sky
Men detsamma kan inte sägas om det tredje argumentet. Om det är en tom sträng (och det andra argumentet finns i det första argumentet) tar det bort det andra argumentet från strängen.
SELECT replace('Red Sky', 'Red', '');
Resultat:
Sky
Detta kommer dock inte att hända om det andra argumentet inte hittas i strängen.
SELECT replace('Red Sky', 'Blue', '');
Resultat:
Red Sky
Ersätter med en icke-sträng
Om det tredje argumentet inte är en sträng, castas det till en UTF-8-sträng innan bearbetning.
SELECT replace('Red Sky', 'Red', 8);
Resultat:
8 Sky
Databasexempel
Här är ett exempel som tar data från en databastabell och ersätter en given sträng/delsträng med en annan sträng.
SELECT
ProductName,
replace(ProductName, 'Widget', 'Car')
FROM Products;
Resultat:
ProductName replace(ProductName, 'Widget', 'Car') -------------- ------------------------------------- Homer's Widget Homer's Car Peter's Widget Peter's Car Bob's Widget Bob's Car