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

حذف الاسطر المتكررة في الداتا بيس

بدأه صاحبة السمو في 19 أغسطس 2008 · 2 رد · 748 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني الكرام

السلام عليكم

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

يعني انا عندي داتا بيس

هذه الداتا بيس اقوم باستيراد البيانات وتخزينها فيها

وبالطبع هناك احتمال ان يكون في اسطر قد تم استيرادها من قبل

لذلك كيف يمكنني ان احذف الاسطر المتكرره التى في الداتا بيس على ان يبقي كل اسطر متكرر فقط سطر واحد

انا فكرت انو احضر البيانات كاملة الى الداتا سيت التى عندي واقوم بعمل لوب وهكذا

ولكن للامانه فان هذه العملية غير منطقية(قراءه - مقارنة - حذف او تعديل) غير انو حجم الداتا بيس سوف يكون كبير اصلا

لذلك اتمنى انو يوجد كود يقوم بهذا الشي

1145392391.gif
#2

يوجد حلول كثيرة منها استخدام rowcount و top و غيره

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

--add identity row to table
ALTER TABLE myTable add rowid int identity(1,1)

---Delete Dups From myTable 
delete from myTable 
where rowid not in
   (select min(rowid)
   from myTable 
   group by something)

--remove identity row from table
ALTER TABLE myTable DROP COLUMN rowid

لو فيه اكثر من حقل لتحديد التكرار استخدم having

#3

طريقة اخري

DELETE FROM myTable
WHERE myIdField IN 
( SELECT	MAX(myIdField ) FROM myTable
GROUP BY Field1, Field2
HAVING COUNT(*) > 1)

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…