Herkese merhaba,
Bu yazıda size SQL Server Random Fonksiyonundan bahsedeceğim.
RAND() fonksiyonu geriye float tipinde sonuç döndürür.
İlk olarak genel kullanımına bakarsak Random fonksiyonu şu şekilde çalışır.
Burada her defasında bize farklı bir sayı üretecektir.
1 ile 9 arasında bir sayı üretmek istiyorsak ne yapacağız.
1 |
SELECT CEILING(RAND()*9); |
1 ile 99 arasında bir sayı üretmek istiyorsak ne yapacağız.
1 |
SELECT CEILING((RAND() * 99)) |
Burada önemli olan nokta şu. Yazdığınız sorguların hangi aralık içinde olmasını istiyorsunuz ve istediğiniz aralıkta mı değer geliyor.
Bu işlem için aşağıdaki sorguyu kullanabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
--Temp Tablo oluşturma CREATE TABLE #LocalTempTablo(ID INT) --Sayaç Tanımlama DECLARE @Sayac INT = 1 --Sayaç değeri ile döngüye burada başlıyoruz. WHILE @Sayac < 20 BEGIN --Sayac ile her dönen değeri burada sanal tabloya insert ediyoruz INSERT INTO #LocalTempTablo ( ID ) VALUES ( CEILING(RAND()*9)) SET @Sayac += 1 END --Sanal tablo üzerinde select sorgusu çekiyoruz SELECT * FROM #LocalTempTablo ORDER BY ID --Başka sorgular için tabloyu drop ediyoruz. DROP TABLE #LocalTempTablo |
Görüldüğü üzere Rand() fonksiyonu ifadesi önünde Ceiling() fonksiyonu var.
1 ile 10 arasında bir sayı üretmek istiyorsak ne yapacağız
1 |
SELECT 1+ROUND(RAND()*9,0) |
1 ile 100 arasında bir sayı üretmek istiyorsak ne yapacağız
1 |
SELECT 1+ROUND(RAND()*99,0) |
0 ile 10 arasında bir sayı üretmek istiyorsak ne yapacağız
1 |
SELECT FLOOR(RAND()*11) |
0 ile 100 arasında bir sayı üretmek istiyorsak ne yapacağız
1 |
SELECT FLOOR(RAND()*101) |
Görüldüğü üzere istediğimiz aralıkta sayı üretebiliyoruz ve bu işlemlerde kullandığımız fonksiyonlar : Floor, Ceiling ve Round
Bunları dikkatle kullanarak istediğiniz aralıkta sayı üretebilmeniz mümkündür.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.
