11 Aralık 2014 Perşembe

Sql İle Sıralama Yapmak (2000, 2005, 2008 ,2012 ve Tüm versiyonlar)


sp_executesql N' select * from (select top 10 * from (select top 15 * from TblTablo order by Id ASC) a order by Kolon1 DESC) b order by Kolon1 ASC';


Top10 - Ekranda geri dönecek kayıt sayısını gösterir. Top15 ise başlangıç indisini. Bu Sorguda 15. kayıttan başlayarak 10 kayıt getirilmesini sağlamaktadır..

Aynı Kodun C# ile fonksiyon olarak sıralanması;

 private String PrepareQuery(String SiralanacakKolon, Boolean Azalan, Int32 SayfaIndex, Int32 SayfadakiKayit, Int32 KayitSayisi)
        {
            Int32 DonecekKayitSay = SayfadakiKayit;
            Int32 BaslanangicSayisi = SayfadakiKayit * (SayfaIndex + 1);
            if (BaslanangicSayisi > KayitSayisi)
            {
                DonecekKayitSay -= (BaslanangicSayisi - KayitSayisi);
            }
            return String.Format(
            @" sp_executesql N’
            select * from
            (select top {0} * from
            (select top {1} * from Customers order by {2} {3}) a
            order by {2} {4}) b
            order by {2} {3}’;",
            DonecekKayitSay,
            BaslanangicSayisi,
            SiralanacakKolon,
            Azalan ? "ASC" : "DESC",
            Azalan ? "DESC" : "ASC");
         }