RANDOM または スカラー関数 RAND

RANDOM関数は、0~1の範囲の浮動小数点型の乱数を返します。 引数は、オプションのシード値として指定できます。

構文図を読むビジュアルシンタックスダイアグラムをスキップするRANDOMRAND(数値式)

スキーマは SYSIBM です。

数値式
numeric-expression を指定した場合、それがシード値として使用されます。 引数は、組み込み整数データ・タイプ (SMALLINT または INTEGER) の値を戻す式であることが必要です。 値は0~2,147,483,646の範囲でなければなりません。

引数を、文字ストリングまたはグラフィック・ストリングのデータ・タイプにすることもできます。 ストリング入力は、暗黙的に DECFLOAT(34) の数値にキャストされ、その後 INTEGER 値に割り当てられます。

この関数の結果は倍精度浮動小数点数です。

結果はnullになる可能性があります。引数がnullの場合、結果もnull値となります。

ゼロ以外の特定のシード値を指定すると、照会が実行されるたびに、照会内の RANDOM 関数の特定のインスタンスに対して同じ乱数シーケンスが生成されます。 シード値は、ステートメント内の RANDOM 関数のインスタンスの最初の呼び出しにのみ使用されます。 RANDOM(0)RANDOM()と同じように処理されます。

決定論:
RANDOM は非決定論的な関数です。

例 1
ホスト変数 HRAND は、値が 100 の INTEGER であると想定します。 次のステートメントは、0~1の範囲のランダムな浮動小数点数、例えば、近似値.0121398を返します
   SELECT RANDOM(:HRAND)
     FROM SYSIBM.SYSDUMMY1;
0 から 1 以外の数値間隔の値を生成するには、RAND 関数に必要な間隔のサイズを乗算 します。 例えば、0から10の範囲のランダムな数値、例えば 5.8731398 のような近似値を得るには、関数を10倍します
   SELECT (RANDOM(:HRAND) * 10)
     FROM SYSIBM.SYSDUMMY1;