İçeriğe geç

MSSQL Mükerrer (Tekrarlayan) Kayıtları Silme

Merhaba arkadaşlar,

Bu yazıda mssql içerisindeki sinir bozucu tekrarlayan kayıtları silmeyi göstereceğim.

Aslında konumuz oldukça basit ancak bulunamadığı zaman da bir o kadar sinir bozucu elbette. 🙂 Sorgumuz aşağıdaki gibi;

DELETE FROM SilinecekTabloAdi WHERE NOT PrimaryKey IN (
SELECT MIN(PrimaryKey) FROM SilinecekTabloAdi
GROUP BY MukerrerHücre/ler)

İşte bu kadar aslında. Gelin bir de kısaca ne demek istiyoruz bahsedelim;

SilinecekTabloAdi kısmı mükerrer kayıtların bulunduğu tablomuzun adı.
PrimaryKey dediğimiz alan ise genel olarak çoğu database mimarının ID/id olarak nitelendirdiği tekrarlanmayan kayıt kimlik numarası alanı.
MukerrerHücre/ler kısmı ise bu alana göre kayıtlarımızı gruplandıracağımız (örn. AdSoyad) kısmıdır.

Yani kısacası aşağıdaki gibi bir tablomuz olduğunu düşünürsek;

Tablomuzun Adı: UYELER olsun

ID | AdiSoyadi | TelefonNumarasi

1     Erkan DOMURCUK   0(242)1234567
2     Erkan DOMURCUK   0(242)1234567
3     Erkan DOMURCUK   0(242)1234567
4     Recep Aslan                 0(242)1234567

 

işte böyle bir tabloyu aşağıdaki sorguya maruz bıraktığımızda;

DELETE FROM UYELER WHERE NOT ID IN (
SELECT MIN(ID) FROM UYELER
GROUP BY AdiSoyadi)

şeklinde bir sorgumuz olmuş olur ve çıktısı ise;

ID | AdiSoyadi | TelefonNumarasi

1     Erkan DOMURCUK   0(242)1234567
4     Recep Aslan                 0(242)1234567

Şeklinde olacaktır. Yani mükerrer kayıtların ilk kayıtları hariç tümünü silecek bir sorguya sahip olmuş olduk.

DipNot: Eğer profesyonel bir yazılımcı değil isek (tabi kendimizi böyle görmek ne kadar doğru bilinmez) mutlaka bu işlem öncesinde yapma ihtimaliniz olan hatalara karşın öncesinde ufak bir yedek almakta fayda var 😉 🙂

Kolaylıklar dilerim 🙂

3 2 votes
Article Rating
Tarih:AnasayfaMicrosoft SQL Server
Subscribe
Bildir
guest
2 Yorum
Eskiler
En Yeniler Beğenilenler
Inline Feedbacks
View all comments
Recep Karman
Recep Karman
7 yıl önce

Teşekkürler hocam yeni gördüm sitenizi hayırlı olsun. Hemen buldum ne hikmetse ve de çok işime yaradı.

Ellerinize sağlık

namik serefoglu
namik serefoglu
7 yıl önce

Ustad guzel bir konu olmus. Sagolasin.

2
0
Would love your thoughts, please comment.x