プロプログラマ

プログラマーを職業としてます。 Flex,Air,C#,Oracle,HTML+JSの言語ノウハウを中心に情報発信していきます

[SQLServer] 指定した範囲内の乱数を生成する

SQLServerで乱数を取得するにはRAND関数を指定します。
ほかの言語と同様に、0~1の間の数が生成されるので、指定範囲内の整数値乱数が必要な場合は、

SELECT FLOOR([FROM値] + (RAND() * ([TO値] - [FROM値] + 1)))

のようにすれば取得できます。

これもほかの言語と同様に乱数は毎回同じ乱数を発生させてしまうため、通常はRANDの引数にSEED値を指定してます。
ココにも乱数で取得された値を指定すればいいのですが、あえて違う乱数取得方法で取得したSEED値を指定してみました。
1~5の乱数を生成する例です。

SELECT FLOOR(1 + (RAND(CONVERT(INT, CONVERT(VARBINARY(4), NEWID()))) * (5 - 1 + 1)))

ココまでする必要ないと思いますけど、念のため
テストデータ生成などに使用できると思います

 

== ランキングに参加しています。ぜひクリックお願いします ==

プログラム ブログランキングへ
にほんブログ村 IT技術ブログへ
にほんブログ村

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください