SQL Server 2005 veya daha yenisini kullanıyorsanız (ve sorunuzun etiketleri SQL Server 2008'i gösteriyorsa), birleştirmeleri kullanmak bir nedenden dolayı daha az arzu edilir veya pratik değilse ilk kayıttan sonra yinelenen kayıtları döndürmek için sıralama işlevlerini kullanabilirsiniz. Aşağıdaki örnek bunu incelenirken göstermektedir ve burada incelenen sütunlardaki boş değerlerle çalışır.
create table Table1 (
Field1 int,
Field2 int,
Field3 int,
Field4 int
)
insert Table1
values (1,1,1,1)
, (1,1,1,2)
, (1,1,1,3)
, (2,2,2,1)
, (3,3,3,1)
, (3,3,3,2)
, (null, null, 2, 1)
, (null, null, 2, 3)
select *
from (select Field1
, Field2
, Field3
, Field4
, row_number() over (partition by Field1
, Field2
, Field3
order by Field4) as occurrence
from Table1) x
where occurrence > 1
Bu örnek çalıştırıldıktan sonra, her "gruptan" ilk kaydın hariç tutulduğuna ve null değerlere sahip kayıtların düzgün işlendiğine dikkat edin.
Bir grup içindeki kayıtları sipariş etmek için kullanılabilir bir sütununuz yoksa, bölümleme sütunlarını sipariş sütunları olarak kullanabilirsiniz.