SQL NEWID() Rastgele Veri Çekmek

Herkese merhaba. Bu yazımda Microsoft SQL Server kullanarak Random(Rastgele) veri çekmeyi anlatacağım. Her programcının er yada geç ihtiyaç duyacağı bir şeydir veritabanından random veri çekmek. Farklı veritabanları için kodladığınız uygulaların programlama kısmında da çözümler üretebilirsiniz fakat hem zaman hem de performans yönünden sıkıntılar yaşayabilirsiniz. Bu noktada MsSQL bizlerin işini oldukça kolaylaştırıyor. Bünyesinde barındırdığı ”NEWID()“ fonksiyonu ile verilerinizi kolayca random bir şekilde veritabanınızdan çekebilirsiniz. Performanstan bahsetmişken tablonuzda çok fazla veri varsa, NEWID() fonksiyonuyla da performans sıkıntıları yaşayabilirsiniz. Bu noktada yine sql'de random fonksiyonu kullanarak algoritma kurabilir veya programlama kısmında farklı algoritmalar kurabilir, performansı arttırmayı deneyebilirsiniz. Daha fazla dallanıp budaklandırmadan NEWID() kullanımına örnekler vererek yazımı tamamlıyım (:

Tablodan Rastgele Bütün Kayıtları Çekmek:

SELECT * From blog order by NEWID()

Tablodan Rastgele 10 Kayıt Çekmek:

SELECT TOP 10 * From blog order by NEWID()

Daha fazla örnek vermeye gerek duymuyorum zaten gayet basit bir fonksiyon. Yararlı olması ümidiyle. İyi çalışmalar (:

Sosyal Ağlarda Paylaşın

Share on Tumblr

Facebook Yorumları


Yorumlar (4)

  • Mustafa Yanıtla

    Merhaba asp.net bloğumda eklediğim ilk içerik en başta duruyor. Yeni içerikler daha önce eklenen içeriğin önünde görünmesi gerekiyor ama yeni içerikler 2.3. sayfaya geçiyor. Sql den çekerken "select top 10" gibi bir şart mevcuttu ama tam olarak nasıl kullanıldığını hatırlayamıyorum. Bu konuda bana ufak bi örnekle yardım edebilir misiniz? Yeni içerikler en önde görünmeli... Teşekkürler iyi çalışmalar.

    9/16/2012 00:26:16
  • B-Rk Yanıtla

    Sayfalama yaptığın kodu gönderirsen onun üzerinden yardımcı olmam daha kolay olur gibi. Top 10 la sadece 10 kayıt çekersin, sıralama işlemini order by asc veya order by desc kullanarak yapman gerekiyor ki senin durumunda son eklenen kayıt ilk sırada görünsün istiyorsan order by sütun1 desc gibi bir ifade kullanman gerekiyor. Mesela her içerik eklendiğinde eklenme tarihini de tutuyorsan veritabanında. Select * from tablon order by tarih desc dersen son eklenen kayıt ilk sırada görüntülenir. Aynı şekilde ID alanı integer tipteyse ona göre de ters sıralama yapabilirsin.

    9/16/2012 12:12:41
  • Mustafa Yanıtla

    void Icerikler() { rIcerik.DataSource = system.GetDataTable("Select Baslik,Tarih,Ozet,Resim from Makale"); rIcerik.DataBind(); } çok teşekkürler çok basitmiş en sona Makale Order by Tarih dedim ve oldu. Bilmeyince oluyor böyle :) Teşekkürler.

    9/16/2012 16:34:42
  • B-Rk Yanıtla

    Rica ederim, yardımım dokunduysa ne mutlu bana (:

    9/16/2012 17:45:20

Yorum Yapın