Come riscrivere i numeri di telefono in T-SQL?
-
03-07-2019 - |
Domanda
Ho una domanda per principianti in T-SQL.
Abbiamo importato fogli Excel in un SQL Server 2008. Peccato che questi file Excel non siano stati formattati come dovrebbero. Vogliamo che un numero di telefono assomigli a questo: "012345678", senza spazi bianchi iniziali e finali e nessun spazio bianco all'interno. Ancora peggio a volte il numero è codificato con un prefisso '0123-2349823' o '0123/2349823'.
Normalmente esporterei il file Excel in un CSV , quindi avvierei un po ' script Perl magico per fare le pulizie e reimportare il file Excel.
Sarebbe comunque interessante sapere come fare cose come queste con T-SQL.
Qualche idea?
Soluzione
Qualcosa di simile
replace(replace(rtrim(ltrim('0123-2349823')), '-', ''), '/', '')
dovrebbe funzionare. Non sembra carino. ;)
Altri suggerimenti
Vorrei farlo con un aggiornamento e utilizzare le funzioni 'Sostituisci' e LTrim / RTrim per SQL.
Update Table1
set phonenum = Case
When phonenum like '%-%' Then LTrim(RTrim(Replace(phonenum, '-', '')))
Else LTrim(RTrim(Replace(phonenum, '/', '')))
End
" Puliti " contiene solo un valore numerico
A seconda che un numero di telefono contenga " - " ;, " / " ;, sostituiscili con una stringa vuota.
create table #t ( tel varchar(30) )
insert #t select '0123-2349823'
insert #t select '0123/2349823'
select tel,
replace(tel,
case
when patindex('%-%', tel) > 0 then '-'
when patindex('%/%', tel) > 0 then '/'
end, '') as Cleaned
from #t