Sorgulama ve aggregation
ORDER BY, TOP ve sayfalama
Deterministik sıralama olmadan güvenilir ilk sayfa olmaz.
Kavramı anlayalım
ORDER BY, sonucu ASC veya DESC sıralar. Eşit değerler için benzersiz bir ek anahtar yazmazsan satırların kendi arasındaki sıra belirsizdir. TOP, ORDER BY yokken iş anlamında “en büyük” veya “en yeni” demek değildir. WITH TIES, son seçilen sıralama değeriyle eşit olanları da döndürebilir.
OFFSET/FETCH sayfalama sağlar ama büyük offset değerleri çok satır atlamayı gerektirebilir. Keyset sayfalama, son görülen anahtardan devam eder. İki yöntemde de eşzamanlı eklemelerin ve sıralama sütunu değişikliklerinin kullanıcı deneyimini etkileyebileceğini düşün.
Liste ekranları, en yüksek değerler ve kararlı sayfalama için.
ORDER BY olmadan TOP kullanıp sonuçların hep aynı geleceğini beklemek.
Aynı konu. Üç farklı derinlik.
SELECT TOP (3) ProductName, Price FROM lab.Product ORDER BY Price DESC, ProductId;Laptop, Monitor ve Desk en pahalı üç üründür.
Bu sayfa SQL çalıştırmaz. Örnekleri indirilebilir SqlStudioLab veritabanında, SSMS’de uygula. Geçici tablo örneklerini yeniden çalıştırırken yalnız ilgili #tabloyu temizle. VIEW, procedure ve function örnekleri lab’da kalıcı nesne oluşturur; üretim bağlantısı kullanma.
Önce kendin dene.
En düşük fiyatlı üç ürünü benzersiz sıralamayla listele.
Çözümü ve açıklamasını göster
SELECT TOP (3) ProductName, Price FROM lab.Product ORDER BY Price, ProductId;Notebook, Cable, Mouse. PostgreSQL/MySQL’de benzer sınırlama için LIMIT kullanılır.