Dipende da cosa devi fare. È possibile utilizzare replace
dal momento che si desidera sostituire il valore:
select replace(email, '.com', '.org')
from yourtable
Poi al UPDATE
la vostra tavola con il nuovo finale, allora si può usare:
update yourtable
set email = replace(email, '.com', '.org')
è anche possibile espandere su questo controllando il ultimi 4 caratteri del valore e-mail:
update yourtable
set email = replace(email, '.com', '.org')
where right(email, 4) = '.com'
Tuttavia, il problema con replace()
è che può essere .com
sarà in altre loca nella mail non solo l'ultima. Così si potrebbe desiderare di utilizzare substring()
seguente modo:
update yourtable
set email = substring(email, 1, len(email) -4)+'.org'
where right(email, 4) = '.com';
Vedi SQL Fiddle with Demo
Utilizzando substring()
restituirà l'inizio del valore di posta elettronica, senza il finale .com
e poi si concatenare il .org
fino alla fine. Ciò impedisce la sostituzione di .com
altrove nella stringa.
In alternativa è possibile utilizzare stuff()
, che ti permette di fare sia la cancellazione e l'inserimento al tempo stesso:
update yourtable
set email = stuff(email, len(email) - 3, 4, '.org')
where right(email, 4) = '.com';
Questo eliminerà 4 caratteri nella posizione del terzo carattere prima l'ultimo (che è la posizione iniziale dell'ultimo .com
) e inserire invece .org
.
Vedere SQL Fiddle with Demo anche per questo metodo.
ringrazio molto, ha funzionato bene. Apprezzato – user2039512
@ user2039512 Sei il benvenuto, sono felice di aiutarti. Se una delle risposte alle tue domande è utile, assicurati di accettarla tramite il segno di spunta a sinistra. Aiuterà i futuri visitatori del sito e riceverete un rappresentante del sito per l'accettazione. :) – Taryn