عضویت العربیة English
امام جواد علیه‌السلام: عزّت مؤمن در بى نیازى او از مردم است. بحارالأنوار، ج 75، ص 109

حذف ركوردهاي تكراري از يك بانك

حذف ركوردهاي تكراري از يك بانك
دوشنبه 2 اسفند 1389  10:40 ق.ظ


گاها براي ما اتفاق مي افتد كه بخواهيم از يك table ركوردهاي تكراري را حذف كنيم .در اين چند خط برنامه سعي مي‌كنم يا ذكر مثال اين مساله را بررسي كنم . فرض كنيد اطلاعات زير موجود باشد :
 

 LastName  FirstName  NameID
 Robert  Aide  106
 David  Koid  ۱۰۷
 Hongb   Li  ۱۰۸
 Rober  Aide  ۱۲۳


مي‌خواهيم اطلاعات تكراري در اين table را حذف كنيم. به ترتيبي كه ركوردي كه حذف ميشود مقدار فيلد NameID آن از فيلدي كه مانند آن است و در جدول مي‌ماند بيشتر باشد. يعني فيلد 123 حذف و 106 باقي بماند.



فرض اين است كه فيلد NameID كليد جدول و يكتاست. اگر چنين فيلدي در جدول نبود مي‌توان آنرا ايجاد كرد.(فيلدي از نوع int و Identity )



در قطعه كد زير ابتدا جدول را از اطلاعات فرضي پر كرده و سپس با يك دستور Delete ركوردهاي تكراري آنرا حذف مي‌كنيم..





Craete Table Dups (NameID int,FirstName varchar(10),LastName varchar(10))



Go





Insert into Dups values (106, ‘Robert’, ‘Aide’)



Insert into Dups values (107, ‘David’, ‘Koidl’)



Insert into Dups values (108, ‘Hongbo’, ‘Li’)



Insert into Dups values (123, ‘Robert’, ‘Aide’)



Insert into Dups values (124, ‘David’, ‘Koidl’)



Insert into Dups values (125, ‘Hongbo’, ‘Li’)



Insert into Dups values (138, ‘Robert’, ‘Aide’)



Insert into Dups values (139, ‘David’, ‘Koidl’)



Insert into Dups values (140, ‘Hongbo’, ‘Li’)



Insert into Dups values (153, ‘Robert’, ‘Aide’)



Insert into Dups values (154, ‘David’, ‘Koidl’)



Insert into Dups values (155, ‘Hongbo’, ‘Li’)



Go



Delete From Dups



Where



Exists(



Select NameId



From Dups DupsInner



Where DupsInner.FirstName = Dups.FirstName



And DupsInner.LastName = Dups.LastName



And DupsInnet.NameID



Go

بعد از پر كردن جدول اطلاعات آن به شكل زير خواهد بود.



106---------Robert--------Aide

107---------David----------Koidl

108---------Hongbo--------Li

123---------Robert --------Aide

124---------David---------- Koidl

125--------- Hongbo-------Li

138----------Robert -------Aide

139---------- David -------- Koidl

140-----------Hongbo-------- Li

153-----------Robert -------- Aide

154-----------David----------- Koidl

155 ----------Hongbo ----------Li


كه پس از دستور Delete به شكل زير در خواهد آمد.



106----------Robert------ Aide

107----------- David------- Koidl

108-----------Hongbo-------Li


با آرزوي موفقيت براي كليه دوستان.

کریمی که جهان پاینده دارد               تواند حجتی را زنده دارد

 

دانلود پروژه و کارآموزی و کارافرینی

mohamadaminsh

mohamadaminsh
کاربر طلایی1
تاریخ عضویت : دی 1389 
تعداد پست ها : 25772
محل سکونت : خوزستان
دسترسی سریع به انجمن ها