Comment réécrire les numéros de téléphone dans T-SQL?
-
03-07-2019 - |
Question
J'ai une question pour débutants dans T-SQL.
Nous avons importé des feuilles de calcul Excel dans un serveur SQL Server 2008. Dommage que ces fichiers Excel ne soient pas formatés comme ils le devraient. Nous voulons un numéro de téléphone qui ressemble à ceci: '012345678', sans espaces blancs de début et de fin, ni espaces à l'intérieur. Pire encore, le numéro est parfois codé avec le préfixe "0123-2349823" ou "0123/2349823".
Normalement, j'exporterais le fichier Excel dans un fichier CSV , puis lancerais des script magique Perl pour effectuer le nettoyage puis réimporter le fichier Excel.
Néanmoins, il serait intéressant de savoir comment faire ce genre de choses avec T-SQL.
Des idées?
La solution
Quelque chose comme
replace(replace(rtrim(ltrim('0123-2349823')), '-', ''), '/', '')
devrait fonctionner. Ça n'a pas l'air joli. ;)
Autres conseils
Je voudrais y aller avec une mise à jour et utiliser les fonctions 'Replace' et LTrim / RTrim pour SQL.
Update Table1
set phonenum = Case
When phonenum like '%-%' Then LTrim(RTrim(Replace(phonenum, '-', '')))
Else LTrim(RTrim(Replace(phonenum, '/', '')))
End
" nettoyé " contient uniquement une valeur numérique
Selon qu'un numéro de téléphone contient "-", "/", remplacez-les par une chaîne vide.
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