RANDOM または スカラー関数 RAND
RANDOM関数は、0~1の範囲の浮動小数点型の乱数を返します。 引数は、オプションのシード値として指定できます。
スキーマは 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;
