[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)))
ココまでする必要ないと思いますけど、念のため
テストデータ生成などに使用できると思います
== ランキングに参加しています。ぜひクリックお願いします ==
[SQL Server] database restore時に「アクセスが拒否されました」 [WPF] XAMLデザイナーがやたらエラーを出力するとき