كيفية كتابة أرقام الهواتف في T-SQL؟
-
03-07-2019 - |
سؤال
ولدي سؤال مبتدئين في T-SQL.
ونحن استيراد صفائح Excel إلى SQL Server 2008. لسيئة للغاية هذه ملفات اكسل لم تنسيق الطريقة التي ينبغي أن يكون. نريد رقم هاتف لتبدو مثل هذا: '012345678'، لا الرئيسي وراء المسافات ولا بيضاء من الداخل. والأسوأ من ذلك في بعض الأحيان يتم ترميز رقم مع بادئة '0123-2349823' أو '0123/2349823 ".
وعادة أود أن تصدير ملف Excel إلى CSV الملف، ثم إطلاق بعض السحر برل للقيام تنظيف ومن ثم إعادة استيراد ملف Excel.
ومع ذلك سيكون من المثير للاهتمام أن نعرف كيف نتعامل مع مثل هذه الاشياء مع T-SQL.
وأي أفكار؟
المحلول
وشيء من هذا القبيل
replace(replace(rtrim(ltrim('0123-2349823')), '-', ''), '/', '')
ويجب أن تعمل. لا تبدو جميلة. ؛)
نصائح أخرى
وأود أن التوجه نحو ذلك مع تحديث واستخدام 'استبدال' وLTRIM / RTRIM وظائف لSQL.
Update Table1
set phonenum = Case
When phonenum like '%-%' Then LTrim(RTrim(Replace(phonenum, '-', '')))
Else LTrim(RTrim(Replace(phonenum, '/', '')))
End
و"تنظيف" يحتوي على قيمة رقمية فقط
واعتمادا على ما إذا كان رقم الهاتف يحتوي على "-"، "/"، استبدالها سلسلة فارغة
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