T-SQL ile Sınırlı Sayıda Kayıt Listelerken Son Sıradakine Eşit Olanları da Listelemek

Başlık biraz uzun oldu ama kısaltmak da istemedim. SQL ile sorgu yazarken sınırlı sayıda kayıt getirmek için TOP ifadesini kullandığımızı biliyoruz. Bazı durumlarda bu sınırlama ihtiyacımızı tam olarak karşılamaz. Örneğin fiyatı en yüksek olan ilk üç kaydı getir. Ancak üçüncü olan fiyatla aynı fiyattaki diğer ürünleri de listelemek istiyorsak TOP ifdadesi tek başına ihtiyacımızı karşılamaz. Böyle bir ihtiycı karşılamak için TOP ifadesi ile birlikte with tier ifadsi de kullanılması gerekir. Örnek sorgumuz aşağıdaki gibidir. Unutulmaması gereken bir husus with ties ifadesinin mutlaka order by ile birlikte kullanılması gerektiğidir.

 

select top(3) with ties Ad,Fiyat from Urun
order by Fiyat desc

 

Sorgu Sonucu

Ad                    Fiyat
Tv                     1500
Sehpa              300
Cep Tel           200
Tenis raketi 200