Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL-databas i Microsoft Fabric
Returnerar ett pseudo-slumpmässigt flyttalvärde från 0 genom 1, exklusivt.
Transact-SQL syntaxkonventioner
Syntax
RAND ( [ seed ] )
Anmärkning
Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.
Arguments
frö
Ett heltalsuttryck (tinyint, smallint eller int) som ger frövärdet. Om frö inte specificeras, tilldelar SQL Server Database Engine ett frövärde slumpmässigt. För ett specificerat frövärde är resultatet som returneras alltid detsamma.
Returtyper
float
Anmärkningar
Upprepade anrop med RAND() samma seed-värde ger samma resultat.
För en anslutning, om
RAND()anropas med ett specificerat seedvärde, ger alla efterföljande anrop resultatRAND()baserat på det seedadeRAND()anropet. Till exempel returnerar följande fråga alltid samma talsekvens.SELECT RAND(100), RAND(), RAND();När du använder
RAND()funktionen i enUPDATEeller ellerINSERTfår alla berörda rader samma värde.
Examples
A. Skapa fyra olika slumpmässiga nummer
Följande exempel ger fyra olika slumptal genererade av RAND() funktionen.
DECLARE @counter AS SMALLINT;
SET @counter = 1;
WHILE @counter < 5
BEGIN
SELECT RAND() AS RandomNumber;
SET @counter = @counter + 1;
END
GO
B. Generera slumpmässigt 0 eller 1
Följande exempel använder ROUND() funktionen för att slumpmässigt returnera antingen 0 eller 1.
SELECT ROUND(RAND(), 0) AS ZeroOrOne;
GO
Anmärkning
I detta exempel returnerar FLOOR()0funktionen alltid , medan funktionen alltid returnerar 1CEILING() .
C. Generera slumpmässiga tal större än 1
Du kan skala intervallet för den slumpmässiga flyttalen genom att multiplicera RAND() funktionen med ett heltalsvärde. Följande exempel returnerar en slumpmässig flytt mellan 0 och 10.
DECLARE @Constant AS INT;
SET @Constant = 10;
SELECT @Constant * RAND() AS RandomNumber;
GO
D. Generera slumpmässiga heltal
Du kan generera ett slumpmässigt heltalsvärde genom att skala RAND() funktionen och kombinera den med ROUND(), FLOOR(), eller CEILING() funktionerna. Följande exempel returnerar ett slumpmässigt heltal mellan 0 och 10, inklusive.
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. Infoga slumpmässiga värden i en tabell
Följande exempel fyller en tabellvariabel med slumpmässiga int-, flyttal- och bitvärden .
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