SQLite replace()
La funzione ci consente di sostituire una stringa (o parte di una stringa) con un'altra stringa.
Il modo in cui funziona è fornire tre argomenti; la stringa che contiene la sottostringa da sostituire, la sottostringa all'interno di quella stringa da sostituire e la stringa con cui sostituirla.
Sintassi
La sintassi è questa:
replace(X,Y,Z)
La funzione restituisce una stringa formata sostituendo la stringa Z per ogni occorrenza della stringa Y nella stringa X.
La sequenza di confronto BINARY viene utilizzata per i confronti. Se Y è una stringa vuota, restituisci X invariato. Se Z non è inizialmente una stringa, viene eseguito il cast di una stringa UTF-8 prima dell'elaborazione.
Esempio
Ecco un semplice esempio da dimostrare.
SELECT replace('Red Sky', 'Red', 'Blue');
Risultato:
Blue Sky
Se il secondo argomento non viene trovato nel primo argomento, non viene sostituito nulla e viene restituita la stringa originale.
SELECT replace('Red Sky', 'Green', 'Blue');
Risultato:
Red Sky
Se il secondo argomento è una stringa vuota, di nuovo non viene sostituito nulla e viene restituita la stringa originale.
SELECT replace('Red Sky', '', 'Blue');
Risultato:
Red Sky
Ma lo stesso non si può dire del terzo argomento. Se è una stringa vuota (e il secondo argomento si trova nel primo argomento), rimuoverà il secondo argomento dalla stringa.
SELECT replace('Red Sky', 'Red', '');
Risultato:
Sky
Tuttavia, ciò non accadrà se il secondo argomento non viene trovato nella stringa.
SELECT replace('Red Sky', 'Blue', '');
Risultato:
Red Sky
Sostituzione con una non stringa
Se il terzo argomento non è una stringa, viene eseguito il cast su una stringa UTF-8 prima dell'elaborazione.
SELECT replace('Red Sky', 'Red', 8);
Risultato:
8 Sky
Esempio di database
Ecco un esempio che prende i dati da una tabella del database e sostituisce una determinata stringa/sottostringa con un'altra stringa.
SELECT
ProductName,
replace(ProductName, 'Widget', 'Car')
FROM Products;
Risultato:
ProductName replace(ProductName, 'Widget', 'Car') -------------- ------------------------------------- Homer's Widget Homer's Car Peter's Widget Peter's Car Bob's Widget Bob's Car