Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Ortadan , 1hariç olarak sözde rastgele bir float değeri 0 döndürür.
Transact-SQL söz dizimi kuralları
Sözdizimi
RAND ( [ seed ] )
Uyarı
Bu söz dizimi, Azure Synapse Analytics'teki sunucusuz SQL havuzu tarafından desteklenmez.
Arguments
seed
Tohum değerini veren bir tamsayı ifadesi (tinyint, smallint veya int). Tohum belirtilmemişse, SQL Server Veritabanı Motoru rastgele bir tohum değeri atar. Belirli bir tohum değeri için, geri dönen sonuç her zaman aynıdır.
Dönüş türleri
float
Açıklamalar
Aynı tohum değeriyle tekrarlayan ' RAND() çağrıları aynı sonucu verir.
Bir bağlantı için,
RAND()belirli bir tohum değeriyle çağrılırsa, sonraki tüm çağrılarRAND()tohumlanmışRAND()çağrıya göre sonuç üretir. Örneğin, aşağıdaki sorgu her zaman aynı sayılar dizisini döndürür.SELECT RAND(100), RAND(), RAND();Fonksiyonu
RAND()birUPDATEsorgudaINSERTkullandığınızda, etkilenen tüm satırlar aynı değeri alır.
Örnekler
A. Dört farklı rastgele sayı oluşturun
Aşağıdaki örnek, fonksiyon tarafından RAND() oluşturulan dört farklı rastgele sayı üretir.
DECLARE @counter AS SMALLINT;
SET @counter = 1;
WHILE @counter < 5
BEGIN
SELECT RAND() AS RandomNumber;
SET @counter = @counter + 1;
END
GO
B. Rastgele 0 veya 1 oluşturun
Aşağıdaki örnek, ROUND() fonksiyonun rastgele olarak herhangi birini 0 veya 1'i döndürmesini sağlar.
SELECT ROUND(RAND(), 0) AS ZeroOrOne;
GO
Uyarı
Bu örnekte, FLOOR() fonksiyon her zaman dönerken0CEILING(), fonksiyon her 1zaman döndürür.
C. 1'den büyük rastgele sayılar üretin
Rastgele float'ın aralığını, fonksiyonu RAND() bir tam sayı değeriyle çarparak ölçekleyebilirsiniz. Aşağıdaki örnek, ile 10arasında 0 rastgele bir float döndürür.
DECLARE @Constant AS INT;
SET @Constant = 10;
SELECT @Constant * RAND() AS RandomNumber;
GO
D. Rastgele tam sayılar üret
Fonksiyonu RAND() ölçeklendirip , FLOOR(), veya CEILING() fonksiyonlarla birleştirerek ROUND()rastgele bir tam sayı değeri oluşturabilirsiniz. Aşağıdaki örnek, ile 10arasında rastgele bir tam sayı 0 döndürür.
DECLARE @Constant AS INT;
SET @Constant = 10;
SELECT ROUND(@Constant * RAND(), 0) AS FirstRandomInteger,
FLOOR(@Constant * RAND()) AS SecondRandomInteger,
CEILING(@Constant * RAND()) AS ThirdRandomInteger;
GO
E. Rastgele değerleri tabloya ekleyin
Aşağıdaki örnek, bir tablo değişkenini rastgele int, float ve bit değerleriyle doldurur.
DECLARE @RandomTable TABLE (
RandomIntegers INT,
RandomFloats FLOAT,
RandomBits BIT);
DECLARE @RowCount AS INT;
DECLARE @Counter AS INT;
SET @RowCount = 10;
SET @Counter = 1;
WHILE @Counter <= @RowCount
BEGIN
INSERT INTO @RandomTable
VALUES (ROUND(10 * RAND(), 0), RAND(), CAST (ROUND(RAND(), 0) AS BIT));
SET @Counter = @Counter + 1;
END
SELECT *
FROM @RandomTable;
GO