[SQL Server] RAND(ランダム)関数で乱数を取得する方法

inno
2014-09-24 11:44 8042 0
MS-SQL / SQL Server
RAND(ランダム)関数で乱数を取得する方法

乱数を取得する方法はRAND関数を使えば簡単にできる。

普通に下記のように作成して実行してみよう。

SELECT RAND()

0から1までの範囲の乱数がfloat型で取得できる。

では、0~99の数字をランダムで取得した場合!


SELECT CONVERT(int,RAND() * 100)

上記のようにすると0~99間の数字がランダムで取得できるのだ。

int型にconvertする理由は整数のみ取得するためだ。

理解ができない人は下記のようにconvertを除いて実行してみた方がいい。

SELECT RAND() * 100

実行してみればCONVERT(int)の意味が分かると思う。

では、0~14間の数字をランダムで取得したい場合は下記のように記述する。

SELECT CONVERT(int,RAND() * 15)

では、0~15間の数字をランダムで取得したい場合は下記のように記述する。

SELECT CONVERT(int,RAND() * 16)

うん??

良く見ると数字が「0」から始まる!

俺は「1」から取得したい!

1~15間の数字をランダムで取得したい場合は下記のように記述する。

SELECT CONVERT(int,RAND() * 15)+1

簡単でしょう?

これを利用して推薦番号取得などで良く使える!!

コメント