25 Ekim 2015 Pazar

SQL'de Rastgele Sayı Üretmek & Veri Döndürmek

SQL RAND()

 

Projelerde sıklıkla gerekebilecek bir Sql sorgusunu sizinle paylaşacağım. 

1. Sisteminizde veri havuzunuzdan rastgele değerler çekmeniz gerekiyor olabilir. *
Örnek vermek gerekirse, projenizde rastgele bir resim, söz, yazı gibi değerler göstermek isteyebilirsiniz. Bunun için kullabileceğimiz SQL Komutu ise Rand() komutudur. Random anlamından türeyen bu komut sadece Rand() yazarak çalışmamaktadır. Bu komutun belirli bir sınırı vardır.
*
Rand() komutunun bir limiti  vardır. Bu limit ifadesi ile rastgele kaç tane veri getireceğini belirler. Bu limit ile gelen değerleri kullandığınız teknolojinin kullanımına göre değişebilir.


Rand() komutunun uygulamasına gelince.
Select description from ozlusozler Order By Rand() Limit 1

Bu kod parçacığı ozlusozler adlı tablonun açıklama sütunundan 1 satırlık veri getirmektedir.

2. SMS şifresi vb. rastgele sayı üretmeniz gerekiyor olabilir.

Sadece Select Rand() komutunu çalıştırdığınızda sistem 0 ile 1 arasında float bir sayı yaratacaktır. Bu sayıyı 4 karakterlik rastgele bir sayıya dönüştürebilmek için bir dizi dönüşüm ve yuvarlama işlemine ihtiyacımız olacaktır.

Select @smspass=Cast(ROUND(((9999 - 1000 -1) * RAND() + 1000), 0) as int

Yukarıdaki örnek kodda öncelikle 3 parametre alan Round() komutuyla sayımızı 1'den büyük hale getiriyoruz. Sonrasında 1000 ekleyerek 4 haneli olmasını garanti ediyoruz. Elde ettiğimiz değeri Integer'a Cast ederek 4 haneli tam sayımıza kavuşuyoruz.

Artık @smspass değişkenimize aldığımız değerimizi farklı fonksiyonlara dahil ederek istediğimiz şekilde kullanabiliriz.










Hiç yorum yok:

Yorum Gönder