06/07/2006

SQLServer 2005 ROW_NUMBER() ile Sıralama

Yukon da istenilen satır bazında kayıt çağırmak mümkün hale getirildi.Mesela Windows uygulaması geliştirenler, grid kontrolleri sayesinde istedikleri gibi sayfalama yapamıyordu.Her ne kadar web uygulamaları için bu iş artık çok kolay olsada windows uygulamalarında çok büyük sorun.Fakat yukonda select cümlesinde yazılan komutlar sayesinde bu iş kolaylaştı.

SELECT  kolon1, kolon2, kolon3
FROM (
     SELECT  ROW_NUMBER() OVER (ORDER BY kolon2 )
            AS Row, kolon2,kolon3
     FROM TabloAdı
    
     )  AS TabloAlias
WHERE  Row > 0 AND Row <= 50

Bu kod sayesinde TabloAdı isimli tablo, kolon2 isimli kolona göre Order By ediliyor ve çalışma esnasında select edilen query e Row isimli bir kolon daha ekleniyor.Row isimli kolon identitiy gibi 1 den itibaren büyüyerek değer alıyor.Sizde bu kod parçacığı sayesinde ilk 50 kayıdı alıp grid inize yükleyebilirsiniz.Kullanıcı sonraki sayfa dediğinde queryde WHERE  Row >0 AND Row <= 50 kısmını WHERE  Row > 50 AND Row <= 100 yaparak, sonraki 50 kayıdı alabilirsiniz.Tabiki 50 50 almak zorunda değilsiniz :)

Yukonda sıralama işlemi için 4 ayrı metod hazırlanmış.( ROW_NUMBER(), RANK(), DENSE_RANK(), NTILE() ) Googgle da RANKING FUNCTION yazarak daha ayrıntılı dökümanlara ulaşabilirsiniz.

Windows uygulaması geliştirenlere hayırlı olsun... :)

17:08 Posted in Yukon | Permalink | Comments (0) | Email this