26 Eyl 2010 T-SQL İçerisinde Dinamik ORDER BY kullanımı Kategori: SQL Server Etiketler: SQL Server 2008SQL ServerSQL Server 2005 5 Yorum Stored Procedure içerisinde dinamik sıralama yapmak için CASE ifadesini kullanabiliyoruz. Parametreden gelen değeri CASE ifadesi ile kontrol ederek istediğimiz alan adına göre sıralama yapabiliyoruz. İtiraf etmeliyim ki şimdiye kadar bir çok yöntem denemiştim ve hiçbirinden memnun kalmamıştım :) Umarım bu yöntem sizlerinde işine yarar...Declare @SiralamaTipi int =1 -- Buraya yazdığımız değere göre sorgu sonucu farklı şekilde sıralanacak.Select * From Stok.Kategoriler Order ByCase When @SiralamaTipi =1 then KategoriID End Asc, -- KaregoriID'ye göre artan sıralama Case When @SiralamaTipi = -1 then KategoriID End Desc, -- KaregoriID'ye göre azalan sıralamaCase When @SiralamaTipi =2 then KategoriAdi End Asc, -- KaregoriAdi'na göre artan sıralamaCase When @SiralamaTipi = -2 then KategoriAdi End Desc -- KaregoriAdi'na göre azalan sıralama Yorum (5) Kadir AÇIKGÖZ / 27.9.2010 20:33:40 güzel olmuş hocam. elinize sağlık. Erman Demirer / 8.10.2010 00:18:28 Yapma Sem, nasıl bir kontrolde gösteriyorsunki datalarını otomatik order yapamıyor ! Sem Göksu / 8.10.2010 00:24:25 @Erman => Hazır hiç bir kontrol kullanmıyorum. Listview, SQL Paging ve klasik ADO.NET ile bu söylediğimi yapan daha güzel birşey varsa söyle onu kullanayım. Kerem Özsu / 27.10.2010 01:36:06 Eline sağlık güzel ve yararlı bir içerik olmuş ama bu içerik için Erman'a katılıyorum. Sem Göksu / 27.10.2010 01:48:40 @Kerem => Eğer datayı SQL Paging kullanarak paket paket çekersem, listeyi sort edebilmek için bu şekilde bir yöntem kullanıyorum. Amacım sadece ekrandaki listeyi değil tüm resultset'i sıralamak. Gridview ile tüm kayıtları gösterip yada sayfalayarak gösterip viewstate üzerinden gidebilirim ama o zaman da performans açısından ne kadar iyi sonuç alırız tartışılır. Yorum Yaz * Ad Soyad: * Email: * Message:
Yorum (5) Kadir AÇIKGÖZ / 27.9.2010 20:33:40 güzel olmuş hocam. elinize sağlık. Erman Demirer / 8.10.2010 00:18:28 Yapma Sem, nasıl bir kontrolde gösteriyorsunki datalarını otomatik order yapamıyor ! Sem Göksu / 8.10.2010 00:24:25 @Erman => Hazır hiç bir kontrol kullanmıyorum. Listview, SQL Paging ve klasik ADO.NET ile bu söylediğimi yapan daha güzel birşey varsa söyle onu kullanayım. Kerem Özsu / 27.10.2010 01:36:06 Eline sağlık güzel ve yararlı bir içerik olmuş ama bu içerik için Erman'a katılıyorum. Sem Göksu / 27.10.2010 01:48:40 @Kerem => Eğer datayı SQL Paging kullanarak paket paket çekersem, listeyi sort edebilmek için bu şekilde bir yöntem kullanıyorum. Amacım sadece ekrandaki listeyi değil tüm resultset'i sıralamak. Gridview ile tüm kayıtları gösterip yada sayfalayarak gösterip viewstate üzerinden gidebilirim ama o zaman da performans açısından ne kadar iyi sonuç alırız tartışılır.
Erman Demirer / 8.10.2010 00:18:28 Yapma Sem, nasıl bir kontrolde gösteriyorsunki datalarını otomatik order yapamıyor !
Sem Göksu / 8.10.2010 00:24:25 @Erman => Hazır hiç bir kontrol kullanmıyorum. Listview, SQL Paging ve klasik ADO.NET ile bu söylediğimi yapan daha güzel birşey varsa söyle onu kullanayım.
Kerem Özsu / 27.10.2010 01:36:06 Eline sağlık güzel ve yararlı bir içerik olmuş ama bu içerik için Erman'a katılıyorum.
Sem Göksu / 27.10.2010 01:48:40 @Kerem => Eğer datayı SQL Paging kullanarak paket paket çekersem, listeyi sort edebilmek için bu şekilde bir yöntem kullanıyorum. Amacım sadece ekrandaki listeyi değil tüm resultset'i sıralamak. Gridview ile tüm kayıtları gösterip yada sayfalayarak gösterip viewstate üzerinden gidebilirim ama o zaman da performans açısından ne kadar iyi sonuç alırız tartışılır.