Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
sql database v Microsoft Fabric
Vrací pseudonáhodnou plovoucí hodnotu z 0 přes 1, exkluzivní.
Syntaxe
RAND ( [ seed ] )
Poznámka:
Tato syntaxe není podporována bezserverovým fondem SQL ve službě Azure Synapse Analytics.
Arguments
seed
Celočíselný výraz (tinyint, smallint nebo int), který udává počáteční hodnotu. Pokud seed není specifikován, SQL Server Database Engine náhodně přiřadí seed hodnotu. Pro určenou počáteční hodnotu je výsledek vždy stejný.
Návratové typy
float
Poznámky
Opakovaná volání s RAND() hodnotou seedu vracejí stejné výsledky.
Pro jedno spojení, pokud
RAND()je voláno s danou počáteční hodnotou, všechna následující voláníRAND()přinášejí výsledky založené na zasazenémRAND()volání. Například následující dotaz vždy vrací stejnou posloupnost čísel.SELECT RAND(100), RAND(), RAND();Když použijete
RAND()funkci v dotazuUPDATEORINSERT, všechny ovlivněné řádky dostanou stejnou hodnotu.
Examples
A. Vytvořte čtyři různá náhodná čísla
Následující příklad produkuje čtyři různá náhodná čísla generovaná touto funkcí.RAND()
DECLARE @counter AS SMALLINT;
SET @counter = 1;
WHILE @counter < 5
BEGIN
SELECT RAND() AS RandomNumber;
SET @counter = @counter + 1;
END
GO
B. Náhodně generujte 0 nebo 1
Následující příklad používá ROUND() funkci k náhodnému vrácení buď nebo 01.
SELECT ROUND(RAND(), 0) AS ZeroOrOne;
GO
Poznámka:
V tomto příkladu FLOOR() funkce vždy vrací 0, zatímco CEILING() funkce vždy vrací 1.
C. Generujte náhodná čísla větší než 1
Rozsah náhodného floatu můžete škálovat vynásobením RAND() funkce celočíselnou hodnotou. Následující příklad vrací náhodný float mezi 0 a .10
DECLARE @Constant AS INT;
SET @Constant = 10;
SELECT @Constant * RAND() AS RandomNumber;
GO
D. Generujte náhodná celá čísla
Náhodnou celočíselnou hodnotu můžete vygenerovat škálováním RAND() funkce a jejím kombinováním s ROUND(), FLOOR(), nebo CEILING() funkcemi. Následující příklad vrací náhodné celé číslo mezi 0 a 10, včetně .
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. Vložte náhodné hodnoty do tabulky
Následující příklad naplní tabulkovou proměnnou náhodnými hodnotami int, float a bit .
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