SQLite
 sql >> Database >  >> RDS >> SQLite

Come funziona Replace() in SQLite

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