SQL Server’da Random Fonksiyonu

Herkese merhaba,

Bu yazıda size SQL Server Random Fonksiyonundan bahsedeceğim.

SQL Server’da RAND() fonksiyonu geriye float tipinde sonuç döndürür.

İlk olarak genel kullanımına bakarsak RANDOM fonksiyonu şu şekilde çalışır.

SQL Server'da Random Fonksiyonu

Burada her defasında bize farklı bir sayı üretecektir.

1 ile 9 arasında bir sayı üretmek istiyorsak ne yapacağız.

SELECT
	CEILING(RAND() * 9);

1 ile 99 arasında bir sayı üretmek istiyorsak ne yapacağız.

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.

--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

SELECT
	1 + ROUND(RAND() * 9, 0);

1 ile 100 arasında bir sayı üretmek istiyorsak ne yapacağız

SELECT
	1 + ROUND(RAND() * 99, 0);

0 ile 10 arasında bir sayı üretmek istiyorsak ne yapacağız

SELECT
	FLOOR(RAND() * 11)

0 ile 100 arasında bir sayı üretmek istiyorsak ne yapacağız

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.

2.287 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!