Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
Azure Synapse Analytics
SQL-Datenbank in Microsoft Fabric
Gibt einen pseudo-zufälligen Gleitwert von 0 durch 1, exklusiv.
Transact-SQL-Syntaxkonventionen
Syntax
RAND ( [ seed ] )
Hinweis
Diese Syntax wird vom serverlosen SQL-Pool in Azure Synapse Analytics nicht unterstützt.
Argumente
seed
Ein ganzzahliger Ausdruck (tinyint, smallint oder int), der den Startwert angibt. Wenn seed nicht angegeben ist, weist SQL Server-Datenbank-Engine einen zufälligen Ausgangswert zu. Für einen bestimmten Ausgangswert ist das zurückgegebene Ergebnis immer gleich.
Rückgabetypen
float
Hinweise
Bei wiederholten Aufrufen von RAND() mit demselben Ausgangswert werden dieselben Ergebnisse zurückgegeben.
Wenn für eine bestimmte Verbindung
RAND()mit einem angegebenen Ausgangswert aufgerufen wird, führen alle nachfolgenden Aufrufe vonRAND()zu Ergebnissen, die auf demRAND()-Ausgangsaufruf basieren. Durch die folgende Abfrage wird z. B. immer dieselbe Nummernreihenfolge zurückgegeben.SELECT RAND(100), RAND(), RAND();Wenn Sie die
RAND()-Funktion in einerUPDATE- oderINSERT-Abfrage verwenden, erhalten alle betroffenen Zeilen denselben Wert.
Beispiele
A. Erstelle vier verschiedene Zufallszahlen
Das folgende Beispiel führt zu vier Zufallszahlen, die von der RAND()-Funktion generiert werden.
DECLARE @counter AS SMALLINT;
SET @counter = 1;
WHILE @counter < 5
BEGIN
SELECT RAND() AS RandomNumber;
SET @counter = @counter + 1;
END
GO
B. Generiere zufällig 0 oder 1
Das folgende Beispiel verwendet die ROUND() Funktion, um entweder oder 01zufällig zurückzugeben.
SELECT ROUND(RAND(), 0) AS ZeroOrOne;
GO
Hinweis
In diesem Beispiel gibt die FLOOR() Funktion immer , 0während die CEILING() Funktion immer zurückgibt 1.
C. Generiere Zufallszahlen größer als 1
Man kann den Bereich des Zufallsfloats skalieren, indem man die RAND() Funktion mit einem ganzzahligen Wert multipliziert. Das folgende Beispiel liefert einen zufälligen Float zwischen 0 und 10.
DECLARE @Constant AS INT;
SET @Constant = 10;
SELECT @Constant * RAND() AS RandomNumber;
GO
D. Erzeugen Sie zufällige ganze Zahlen
Man kann einen zufälligen ganzzahligen Wert erzeugen, indem man die RAND() Funktion skaliert und mit den ROUND(), FLOOR(), oder CEILING() Funktionen kombiniert. Das folgende Beispiel liefert eine zufällige ganze Zahl zwischen 0 und 10einschließlich zurück.
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. Fügen Sie Zufallswerte in eine Tabelle ein
Das folgende Beispiel füllt eine Tabellenvariable mit zufälligen int-, Float- und Bitwerten.
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