Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL-adatbázis a Microsoft Fabricben
Egy pszeudo-véletlenszerű lebegő értéket ad vissza , 0 exkluzív értéken keresztül 1.
Transact-SQL szintaxis konvenciók
Szemantika
RAND ( [ seed ] )
Megjegyzés:
Ezt a szintaxist az Azure Synapse Analytics kiszolgáló nélküli SQL-készlete nem támogatja.
Arguments
seed
Egy egész szám kifejezés (tinyint, smallint vagy int), amely megadja a magértéket. Ha a mag nincs megadva, az SQL Server Database Engine véletlenszerűen rendel egy seed értéket. Egy meghatározott magérték esetén a visszaadott eredmény mindig ugyanaz.
Visszatérési típusok
float
Megjegyzések
Ugyanazzal a magértékkel ismétlődő hívások RAND() ugyanazt az eredményt adják.
Egy kapcsolat esetén, ha
RAND()meghatározott magértékkel hívják, az összes további hívásRAND()a seededRAND()call alapján eredményt hoz. Például a következő lekérdezés mindig ugyanazt a számsorozatot adja vissza.SELECT RAND(100), RAND(), RAND();Ha a
RAND()függvénytUPDATEaz orINSERTlekérdezésben használod, az összes érintett sor ugyanazt az értéket kapja.
Példák
A. Négy különböző véletlenszámot hozz létre
A következő példa négy különböző véletlenszámot eredményez, amelyeket a RAND() függvény generál.
DECLARE @counter AS SMALLINT;
SET @counter = 1;
WHILE @counter < 5
BEGIN
SELECT RAND() AS RandomNumber;
SET @counter = @counter + 1;
END
GO
B. Generálj véletlenszerűen 0 vagy 1
A következő példa a ROUND() függvényt véletlenszerűen visszaadja vagy vagy 10 .
SELECT ROUND(RAND(), 0) AS ZeroOrOne;
GO
Megjegyzés:
Ebben a példában a FLOOR() függvény mindig visszaadja 0, míg a CEILING() függvény mindig 1.
C. Generálj véletlenszámokat, amelyek nagyobbak mint 1
A véletlenszerű lebegő tartományát úgy lehet skálázni, hogy a RAND() függvényt egész értékkel szorozzuk. A következő példa véletlenszerű lebegést ad vissza és 10között0.
DECLARE @Constant AS INT;
SET @Constant = 10;
SELECT @Constant * RAND() AS RandomNumber;
GO
D. Véletlenszerű egész számok generálása
Véletlenszerű egész értéket generálhatsz úgy, hogy skálázod a RAND() függvényt, és kombinálod az ROUND(), FLOOR(), vagy CEILING() függvényekkel. A következő példa egy véletlenszerű egész számot ad és 010között, beleértve , beleértve .
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. Véletlenszerű értékek bekerülése egy táblázatba
A következő példa egy táblázatváltozót véletlenszerű int, lebegő és bit értékekkel tölt fel.
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