الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ممكن كود تعديل ارقام الهواتف بال SQL

بدأه #A-H.c في 3 يناير 2015 · 4 رد · 1,762 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

ممكن كود تعديل ارقام الهواتف بال SQL

 

يوجد قاعدة بيانات  سيكوال يوجد بها ارقام هواتف أرضي وارقام هواتف محمولة قديمة ( 10 أرقام ) ويوجد ارقام هواتف محمولة جديدة ( 11 رقم )

 

اسماء الحقول : Phone , Name , Address

 

 

المطلوب تحديد الارقام اللتي تكون مكونة من 10 أرقام وتعديلها على النحو التالي اذا كانت 10 ارقام وتبدأ بـ ( 0101234567 ) يتم تحويلها الى ( 01001234567 ) ، والارقام اللتي تبدأ بـ ( 0121234567 ) يتم تحويلها الى ( 01221234567 )

 

وفي النهاية اذا كان يوجد ارقام مكررة يتم ابقاء واحد منها ومسح الرقم المكرر

 

وأأسف على الاطالة وجزاكم الله كل خير.

#2

أخي الفاضل

بالنسبة للمطلوب الاول تفضل الحل

فمن خلال هذا الاسكريبت سيتم عمل تحديث للارقام التي تبدأ بــ 010 و مكونة من 10 أرقام فقط ليصبح 0100 بدلا من 010

update Tbl_Phones set  Phone = Replace(phone,010,0100)where  Phone = LEFT(phone,10) and phone Like '010%'

ستقوم بتنفيذ الاسكريبت علي 012 ايضا

 

بعد الانتهاء من عمليه التحديث سيتم حذف الارقام المكررة من الجدول

 

WITH CTE AS(
   SELECT phone,
       RN = ROW_NUMBER()OVER(PARTITION BY phone ORDER BY phone)
   FROM dbo.Tbl_Phones
)
DELETE FROM CTE WHERE RN > 1

بالتوفيق

2

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#3

وايضا قد يفيدك هذا الكود

update Tbl_Phones 
set  Phone = '01'+ SUBSTRING(phone,3,10)
where LEN(Phone)=10

وايضا هذا للحذف

WITH CTE AS(
   SELECT id,
       RN = ROW_NUMBER()OVER(PARTITION BY phone ORDER BY phone)
   FROM dbo.Tbl_Phones
)
DELETE FROM Tbl_Phones WHERE ID IN(SELECT id FROM CTE WHERE rn > 1)
2
#4

السلام عليكم ورحمة الله وبركاته

أولاً: شكر خاص للأستاذ المبدع محمد تركى وأستاذنا حسام على مجهودهما العظيم فى هذا المنتدى، جعل الله أعمالهما فى ميزان حسناتهما

ثانياً: لو سمح لى أستاذنا محمد تركى بتعديل بسيط على الكود الرائع الذى تفضل به

التعديل مجرد استبدال أمر Replace بأمر Substring حيث أننى واجهتنى مشكلة عند استخدام أمر replace أنه سيقوم بتغيير كل 010 إلى 0100 بمعنى لو أن رقم التليفون 0105501055 فبعد التغيير سيكون 010055010055 اى أنه قام بتغيير 010 الموجودة داخل الرقم وهذا غير مطلوب

 

فربما يكون الكود كالتالى بالنسبة للأرقام البادئة بـ 010،

update Tbl_Phones set  Phone = '0100' + Substring(phone, 4, 20) where  Phone = LEFT(phone,10) and phone Like '010%'

اى يعدل الرقم بالقيمة الجديدة والتى عبارة عن المقطع '0100' + باقى الرقم ابتداء من الخانة الرابعة وحتى نهايته لاحظ أننا وضعنا الطول يساوى 20 وهذا يفى بالغرض

 

ويتم عمل نفس الكود السابق مع كل التوليفات أى البادئة بـ 012، 011، 014، 019، 016 وهكذا

 

علمنا الله وإياكم ونفعنا بما علمنا

تم تعديل هذه المشاركة بواسطة ema2000_t في 4 يناير 2015 في 01:29

2▲ 1

أدعو الله أن يجعل أعمالنا خالصة لوجهه الكريم --- وأن ينفعنا بما علمنا

Dr Sayed Tohamy

Programming Instructor

مدرب برمجة

---------------

EmaSoft2000

-------------------

#5

شكراً لكم جميعاً وجزاكم الله الجنة

:thumb_up:  :thumb_up:  :thumb_up:  :ty:

مواضيع مشابهة