Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL database di Microsoft Fabric
Mengembalikan nilai float pseudo-acak dari 0 melalui 1, eksklusif.
Sintaksis
RAND ( [ seed ] )
Catatan
Sintaks ini tidak didukung oleh kumpulan SQL tanpa server di Azure Synapse Analytics.
Argumen
biji
Ekspresi bilangan bulat (tinyint, smallint, atau int) yang memberikan nilai benih. Jika seed tidak ditentukan, SQL Server Database Engine menetapkan nilai seed secara acak. Untuk nilai seed tertentu, hasil yang dikembalikan selalu sama.
Jenis yang dikembalikan
float
Keterangan
Panggilan RAND() berulang dengan nilai seed yang sama mengembalikan hasil yang sama.
Untuk satu koneksi, jika
RAND()dipanggil dengan nilai seed tertentu, semua panggilanRAND()hasil hasil berikutnya berdasarkan panggilan seededRAND(). Misalnya, kueri berikut selalu mengembalikan urutan angka yang sama.SELECT RAND(100), RAND(), RAND();Saat Anda menggunakan
RAND()fungsi dalam kueriUPDATEatauINSERT, semua baris yang terpengaruh mendapatkan nilai yang sama.
Contoh
A. Buat empat angka acak yang berbeda
Contoh berikut menghasilkan empat angka acak berbeda yang dihasilkan oleh RAND() fungsi .
DECLARE @counter AS SMALLINT;
SET @counter = 1;
WHILE @counter < 5
BEGIN
SELECT RAND() AS RandomNumber;
SET @counter = @counter + 1;
END
GO
B. Hasilkan 0 atau 1 secara acak
Contoh berikut menggunakan fungsi untuk ROUND() mengembalikan salah satu 0 atau 1.
SELECT ROUND(RAND(), 0) AS ZeroOrOne;
GO
Catatan
Dalam contoh ini, FLOOR() fungsi selalu mengembalikan 0, sedangkan CEILING() fungsi selalu mengembalikan 1.
C. Hasilkan angka acak lebih besar dari 1
Anda dapat menskalakan rentang float acak dengan mengalikan RAND() fungsi dengan nilai bilangan bulat. Contoh berikut mengembalikan float acak antara 0 dan 10.
DECLARE @Constant AS INT;
SET @Constant = 10;
SELECT @Constant * RAND() AS RandomNumber;
GO
D. Hasilkan bilangan bulat acak
Anda dapat menghasilkan nilai bilangan bulat acak dengan menskalakan RAND() fungsi dan menggabungkannya dengan ROUND()fungsi , FLOOR(), atau CEILING() . Contoh berikut mengembalikan bilangan bulat acak antara 0 dan 10, inklusif.
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. Menyisipkan nilai acak ke dalam tabel
Contoh berikut mengisi variabel tabel dengan nilai int, float, dan bit acak.
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