NEWID() Komutu Yardimi Ile Tablodan Rastgele Satirlar Getirmek

Size 1000 satirlik tablodan rastgele 10 kaydi getirin dersem ne yaparsiniz? Herhalde akliniza
* Bir Windows proje yazip tablo verilerinizi bir Datatable’a aktarip oradan bir algoritma yazmak veya
* SqlServer içerisindeki RAND() fonksiyonu ile yine bir algoritma yazmak gelir.

Iki yöntem için de bir çok kod yazmaniz gerekir. Benim daha kullanmisli bir fikrim var. NEWID() fonksiyonunu kullanalim. NEWID() fonksiyonu uniqueIdentifier tipinde veri türetir. Türettigi deger “1FFE0610-E2D1-4F4F-84E7-0477EC8EB5A7” seklinde tutulur.

Simdi Herhangi bir veritabanindan rastgele 10 kayit seçelim. Ben Asagidaki tabloyu kullaniyorum.

newid-komutu-ile-tablodan-rastgele-satir-1

newid-komutu-ile-tablodan-rastgele-satir-1

Simdi sorgumuzu yazalim.

SELECT TOP 10 ID,ad,newid() as rastgele
FROM Kitaplar
ORDER BY rastgele

Burada olusturdugumuz mantik NEWID() fonksiyonunu kullanarak kayitlarin yanina “rastgele” isimli uniqueIdentifier türünde kayit olusturuldu. Biz bunlari “rastgele” kolonuna göre siralayip ilk 10 tanesini aliyoruz.

Iste Sonuç;

newid-komutu-ile-tablodan-rastgele-satir-2

newid-komutu-ile-tablodan-rastgele-satir-2

Diger yazilarimda görüsmek üzere…