Sql tabloda tekrar eden satırları silme

+8 oy
8 Nisan 2015 androidboy Uzman Yardımcısı (1,830 puan)   sordu

MsSQL'de daha önceden oluşturulmuş içerisinde veri barındıran id sütunu olan bir tablom var tekrar eden satırları nasıl silebilirim?

Tablo
-----------
tid int not null identity(1,1) primary key,
kolon1 varchar(20) not null,
kolon2 varchar(2048) not null,
kolon3 tinyint not null

2 Cevap

+3 oy
8 Nisan 2015 Tahsin Dalman Uzman (7,000 puan)   cevapladı
8 Nisan 2015 androidboy seçti
 
En İyi Cevap

Şu şekilde işini görür sanırım.

DELETE FROM Tablo WHERE tid NOT IN (SELECT MIN(tid) FROM table GROUP BY kolon1, kolon2, kolon3);

+2 oy
8 Nisan 2015 mkocaker06 Uzman Yardımcısı (3,890 puan)   cevapladı
DELETE from Tablo
USING Tablo, Tablo as yeniTablo
WHERE (Tablo.ID > yeniTablo.ID)
AND (Tablo.kolon1=yeniTablo.kolon1)
bu şekilde yaparak sadece bir örneği kalacak şekilde tablonun kolon1 kolonunda ki tekrarlı verileri silebilirsin.
...