Wie Telefonnummern in T-SQL neu zu schreiben?
-
03-07-2019 - |
Frage
Ich habe einen Anfänger Frage in T-SQL.
Wir importierten Excel Sheets in eine SQL Server 2008. Schade, diese Excel-Dateien, die Art und Weise nicht formatiert wurden sie sein sollten. Wir wollen eine Telefonnummer wie folgt aussehen: ‚012345678‘, keine führende und nachfolgende Leerzeichen und keine Leerzeichen innerhalb. Noch schlimmer manchmal wird die Zahl mit einem Präfix codiert ‚0123-2349823‘ oder ‚0123/2349823‘.
Normalerweise würde ich die Excel-Datei in eine CSV Datei, starten Sie dann einige Magie Perl-Skript die Reinigung und dann wieder importiert die Excel-Datei zu tun.
Noch wäre es interessant zu wissen, wie Dinge mit T-SQL, wie dies zu tun.
Irgendwelche Ideen?
Lösung
So etwas wie
replace(replace(rtrim(ltrim('0123-2349823')), '-', ''), '/', '')
sollte funktionieren. Nicht hübsch aussehen. ;)
Andere Tipps
würde ich es mit einem Update gehen und die ‚Ersetzen‘ und LTrim / RTrim Funktionen für SQL verwenden.
Update Table1
set phonenum = Case
When phonenum like '%-%' Then LTrim(RTrim(Replace(phonenum, '-', '')))
Else LTrim(RTrim(Replace(phonenum, '/', '')))
End
"Gereinigt" enthält nur numerischen Wert
Je nachdem, ob eine Telefonnummer enthält „-“., „/“, Ersetzen Sie sie durch eine leere Zeichenfolge
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