Kategorien:

Datengenerierungsfunktionen

UNIFORM

Generiert eine gleichmäßig verteilte, pseudozufällige Zahl im Bereich [min, max] (einschließlich).

Syntax

UNIFORM( <min> , <max> , <gen> )
Copy

Argumente

min

Eine Konstante, die den Mindestwert (einschließlich) der generierten Zahl angibt.

max

Eine Konstante, die den Höchstwert (einschließlich) der generierten Zahl angibt.

gen

Ein Ausdruck, der als Rohdatenquelle für gleichmäßige Zufallszahlen dient, typischerweise die Funktion RANDOM. Weitere Informationen dazu finden Sie unter „Datengenerierungsfunktionen“ unter Nutzungshinweise.

Rückgabewerte

Wenn mindestens einer der beiden Werte min oder max eine Gleitkommazahl ist, gibt UNIFORM eine Gleitkommazahl zurück. Wenn sowohl min als auch max Ganzzahlen (Integer) sind, gibt UNIFORM eine Ganzzahl zurück.

Nutzungshinweise

Diese Funktion ist mit der Funktion RANDOM verwandt, unterscheidet sich jedoch von dieser. Beide Funktionen generieren gleichmäßige Verteilungen, aber es gibt Unterschiede in den Wertebereichen der zurückgegebenen Werte.

  • RANDOM generiert pseudozufällige 64-Bit-Ganzzahlen. Sie akzeptiert einen optionalen Startwert, der die Wiederholung von Sequenzen ermöglicht.

  • UNIFORM generiert zufällige Ganzzahl- oder Gleitkommazahlen im angegebenen Bereich.

Beispiele

In den folgenden Beispielen wird die Verwendung der Funktion UNIFORM() gezeigt. Die in der Ausgabe unten angezeigten Werte können sich von den Werten unterscheiden, die zurückgegeben werden, wenn Sie diese Beispiele selbst ausführen.

Dieses Beispiel erzeugt fünf zufällige Ganzzahlen im Bereich von 1 bis 10 (einschließlich):

SELECT UNIFORM(1, 10, RANDOM()) FROM TABLE(GENERATOR(ROWCOUNT => 5));
Copy
+--------------------------+
| UNIFORM(1, 10, RANDOM()) |
|--------------------------|
|                        6 |
|                        1 |
|                        8 |
|                        5 |
|                        6 |
+--------------------------+

Dieses Beispiel erzeugt fünf Gleitkommazahlen im Bereich von 0 bis 1 (einschließlich):

SELECT UNIFORM(0::FLOAT, 1::FLOAT, RANDOM()) FROM TABLE(GENERATOR(ROWCOUNT => 5));
Copy
+---------------------------------------+
| UNIFORM(0::FLOAT, 1::FLOAT, RANDOM()) |
|---------------------------------------|
|                         0.1180758313  |
|                         0.4945805484  |
|                         0.7113092833  |
|                         0.06170806767 |
|                         0.01635235156 |
+---------------------------------------+

Dieses Beispiel zeigt, dass, wenn das Argument gen eine Konstante ist, auch die Ausgabe eine Konstante ist:

SELECT UNIFORM(1, 10, 1234) FROM TABLE(GENERATOR(ROWCOUNT => 5));
Copy
+----------------------+
| UNIFORM(1, 10, 1234) |
|----------------------|
|                    7 |
|                    7 |
|                    7 |
|                    7 |
|                    7 |
+----------------------+