SQL


Microsoft SQL 2005 ile gelen yenilikler 2

Etiketler :
sql, 2005, tsql, yenilikler,

Okunma Sayısı : 74  Yayınlanma Tarihi : 17.03.2008  Yayınlayan : Akın Bostancı

Puanla
Bu Makaleye 0 kişi puan vermiştir. Ortalama Puan: 0

Özet :
T-SQL kodlarında da bazı güncellemeler ve yeni eklenen komut setleri mevcut. Bunları incelemeye çalışalım.

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

SQL Kategorisinden Son Makaleler

Makale ile ilgili Yorumlar

Bu makale hakkında henüz yorum yapılmamıştır...


Güvenlik Kodunuz

Yorum ekleyebilmeniz için üye olmanız gerekmektedir.
Üye iseniz üye girişi yapınız.. Üye değilseniz, üye olmak için tıklayınız