گاها براي ما اتفاق مي افتد كه بخواهيم از يك table ركوردهاي تكراري را حذف كنيم .در اين چند خط برنامه سعي مي*كنم يا ذكر مثال اين مساله را بررسي كنم . فرض كنيد اطلاعات زير موجود باشد :
[TABLE="width: 481, align: center"]
[TR]
[TD="width: 33%"] LastName[/TD]
[TD="width: 33%"] FirstName[/TD]
[TD="width: 33%"] NameID[/TD]
[/TR]
[TR]
[TD="width: 33%"] Robert[/TD]
[TD="width: 33%"] Aide[/TD]
[TD="width: 33%"] 106[/TD]
[/TR]
[TR]
[TD="width: 33%"] David[/TD]
[TD="width: 33%"] Koid[/TD]
[TD="width: 33%"] ۱۰۷[/TD]
[/TR]
[TR]
[TD="width: 33%"] Hongb[/TD]
[TD="width: 33%"] Li[/TD]
[TD="width: 33%"] ۱۰۸[/TD]
[/TR]
[TR]
[TD="width: 33%"] Rober[/TD]
[TD="width: 33%"] Aide[/TD]
[TD="width: 33%"] ۱۲۳[/TD]
[/TR]
[/TABLE]


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


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


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




کد PHP:
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

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