TOP OPERATÖRÜ
Top operatörü T-SQL'in önceki versiyonlarında da kullanabildiğimiz, yazmış olduğunuz T-SQL Select ifadesinin istediğiniz adette kayıtlık bir diziyi veya kayıt dizisinin yüzdelik bir bölümünü ekrana getirmenize yarıyordu. Bu aşamada dilediğiniz oranı yazbiliyordunuz ancak parametrik bir ifade yazmanız mümkün değildi.
Top operatörü geçmiş özelliklerini aynen korumakla beraber artık parametrik sorgularda çalıştırabilmenizin yolunu açıyor.
Örnek :
Declare @Sayi int
Set @Sayi = 3
Select Top(@Sayi) FirstName, LastName, Phone, ModifiedDate from Person.Contact
ROWNUMBER
T-SQL'e yeni eklenen bir komut olan RowNumber bizler için kullanıldığı select ifadesinde her kayıt için unique bir rownumber ifadesi üretmesinin yanında özellikle SQL Server 2000'de zorlandığımız veri sayfalama işlemlerinide kolaylaştırmıştır.
Örnek 1:
SELECT ROW_NUMBER() OVER (ORDER BY FirstName) AS SıraNo, FirstName, LastName
FROM Person.Contact
ORDER BY FirstName
Örnek 2:
SELECT *
FROM (Select ROW_NUMBER() OVER (ORDER BY FirstName) AS SıraNo, FirstName, LastName from Person.Contact) TEST
Where SıraNo Between 10 And 14
RANK - DENSE_RANK
RowNumber ifadesindeki gibi sıralama yapmanıza yarayan bu temel komut sisteminin RowNumber'dan farkı aynı değere sahip alanlar için yaratılacak sıra numarasınında aynı olmasını sağlamasıdır.
Rank ve Dense_Rank arasındaki temel fark ise Rank'in kayıt sırasına göre Dense_Rank'in ise grup sırasına göre çalışmasıdır.
Örnek :
SELECT FirstName, LastName,
RANK() OVER(ORDER BY LastName DESC) AS Rank,
DENSE_RANK() OVER(ORDER BY LastName DESC) AS Dense_Rank
FROM Person.Contact
ORDER BY LastName DESC
NTILE
Sorgu sonucunda seviyelendirme işlemi yapmanıza olanak tanır. Örneğin satın aldıkları ürün birim fiyatlarına göre siparişlerin sınıflandırılması gibi...
Örnek :
SELECT
SalesOrderID, OrderQty, ProductID, UnitPrice,
NTile(4) Over (Order By UnitPrice) As X
from Sales.SalesOrderDetail