Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL-database in Microsoft Fabric
Geeft een pseudo-willekeurige floatwaarde van 0 tot en 1met , exclusief terug.
Transact-SQL syntaxis-conventies
Syntaxis
RAND ( [ seed ] )
Opmerking
Deze syntaxis wordt niet ondersteund door een serverloze SQL-pool in Azure Synapse Analytics.
Arguments
seed
Een geheel getal (tinyint, smallint, of int) die de seedwaarde geeft. Als seed niet wordt gespecificeerd, wijst de SQL Server Database Engine willekeurig een seedwaarde toe. Voor een gespecificeerde seedwaarde is het resultaat dat wordt teruggegeven altijd hetzelfde.
Retourtypen
float
Opmerkingen
Herhaalde aanroepen van RAND() met dezelfde seedwaarde geven dezelfde resultaten.
Voor één verbinding, als
RAND()wordt aangeroepen met een gespecificeerde seedwaarde, leveren alle volgende aanroepen vanRAND()resultaten op gebaseerd op de gezaaideRAND()aanroep. Bijvoorbeeld, de volgende query geeft altijd dezelfde reeks getallen terug.SELECT RAND(100), RAND(), RAND();Wanneer je de
RAND()functie gebruikt in eenUPDATEof queryINSERT, krijgen alle getroffen rijen dezelfde waarde.
Voorbeelden
Eén. Maak vier verschillende willekeurige getallen
Het volgende voorbeeld levert vier verschillende willekeurige getallen op die door de RAND() functie worden gegenereerd.
DECLARE @counter AS SMALLINT;
SET @counter = 1;
WHILE @counter < 5
BEGIN
SELECT RAND() AS RandomNumber;
SET @counter = @counter + 1;
END
GO
B. Genereer willekeurig 0 of 1
Het volgende voorbeeld gebruikt de ROUND() functie om willekeurig ofwel 0 of 1terug te geven.
SELECT ROUND(RAND(), 0) AS ZeroOrOne;
GO
Opmerking
In dit voorbeeld geeft de FLOOR() functie altijd , 0terwijl de CEILING() functie altijd teruggeeft 1.
C. Genereer willekeurige getallen groter dan 1
Je kunt het bereik van de willekeurige float schalen door de RAND() functie te vermenigvuldigen met een geheel getal. Het volgende voorbeeld geeft een willekeurige float tussen 0 en 10op.
DECLARE @Constant AS INT;
SET @Constant = 10;
SELECT @Constant * RAND() AS RandomNumber;
GO
D. Genereer willekeurige gehele getallen
Je kunt een willekeurige gehele waarde genereren door de RAND() functie te schalen en te combineren met de ROUND(), FLOOR(), of CEILING() functies. Het volgende voorbeeld geeft een willekeurig geheel getal tussen 0 en 10, inclusief.
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. Voeg willekeurige waarden in een tabel in
Het volgende voorbeeld vult een tabelvariabele met willekeurige int-, float- en bitwaarden .
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