SQLite replace()
funktion gør det muligt for os at erstatte en streng (eller en del af en streng) med en anden streng.
Måden det fungerer på er, at du giver tre argumenter; strengen, der indeholder understrengen, der skal erstattes, understrengen i den streng, der skal erstattes, og strengen, der skal erstattes med.
Syntaks
Syntaksen ser sådan ud:
replace(X,Y,Z)
Funktionen returnerer en streng dannet ved at erstatte streng Z for hver forekomst af streng Y i streng X.
Den BINÆRE sammenstillingssekvens bruges til sammenligninger. Hvis Y er en tom streng, så returner X uændret. Hvis Z ikke oprindeligt er en streng, castes den til en UTF-8-streng før behandling.
Eksempel
Her er et simpelt eksempel at demonstrere.
SELECT replace('Red Sky', 'Red', 'Blue');
Resultat:
Blue Sky
Hvis det andet argument ikke findes i det første argument, erstattes intet, og den oprindelige streng returneres.
SELECT replace('Red Sky', 'Green', 'Blue');
Resultat:
Red Sky
Hvis det andet argument er en tom streng, erstattes intet igen, og den oprindelige streng returneres.
SELECT replace('Red Sky', '', 'Blue');
Resultat:
Red Sky
Men det samme kan ikke siges om det tredje argument. Hvis det er en tom streng (og det andet argument findes i det første argument), vil det fjerne det andet argument fra strengen.
SELECT replace('Red Sky', 'Red', '');
Resultat:
Sky
Dette vil dog ikke ske, hvis det andet argument ikke findes i strengen.
SELECT replace('Red Sky', 'Blue', '');
Resultat:
Red Sky
Udskiftning med en ikke-streng
Hvis det tredje argument ikke er en streng, castes det til en UTF-8-streng før behandling.
SELECT replace('Red Sky', 'Red', 8);
Resultat:
8 Sky
Databaseeksempel
Her er et eksempel, der tager data fra en databasetabel og erstatter en given streng/understreng med en anden streng.
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