May
12
2011

MSSQL ile Yinelenen Kayıtlar nasıl bulunur?

Veritabanı üzerinde kontrol sorguları yapılırken MÜKERRER (Yinelenen) kayıtları bulmak için en basitinden aşağıdaki sorgu yapısını kullanabiliriz.

[box type=”shadow”]

SELECT * FROM (
SELECT     row_number() over (partition by kurum.kurumno order by kurum.kurumno) as rowid,
uyeligi.kurumno,
kurum.unvani,
kurum.sicilno
FROM
uyeligi,kurum

where uyeligi.kurumno=kurum.kurumno

) AS sonuclar
WHERE sonuclar.rowid >1

[/box]

 

sorgumuzu en kısa şekilde anlatmak gerekirse;

SELECT * FROM (
SELECT     row_number() over (partition by kurum.kurumno order by kurum.kurumno) as rowid, …

burada asıl önemli olan SELECT     row_number() over (partition by kurum.kurumno order by kurum.kurumno) as rowid, komutudur. BU komut ile kurum.kurumno sütununu ORDER BY ile ARTAN düzende sıralı ve PARTITION by komutu ile de listeyi kendi içersinde gruplandırırken. Row_number() ile de kendi içersinde gruplandırılan satırlara artan sırada 1,2,3 gibi numara vermiş oluyoruz.

ile  parantez içindeki sorguyu  bir diziye alıyoruz ve bu dizi içersindeki herşeyi SELECT * FROM ( ile getir diyoruz.

Daha sonra da;

) AS sonuclar WHERE sonuclar.rowid >1 ile dizinin rowid sütunundaki sayının 1 den büyük olduğu durumları göster diyoruz. Bu şekildede tekrar sayısı 1 den büyük olanlar listeleniyor.

 

TeamViewer ile İnternet üzerinden Uzaktan Erişim ve Destek Sekercioglu.eu Uzaktan Yardım
Ammyy Uzaktan Yardım
WinRAR
WEBMAIL Google PageRank Checker
Twitterda Takip Edin! Twitterda Takip Edin!
Twitter

Üye Paneli

Son Yazılar

Kategoriler

Son Yorumlar