SQLite,0~9の範囲で乱数を取得する

スポンサーリンク

鍛錬 79

SQLite,0~9の範囲で乱数を取得する

0 ~ 9 の範囲で乱数を取得するには、random() 関数を使用します。
 
使用方法は、以下に示す通りです。

範囲を指定せずに乱数を取得

select random();

 
0 ~ 9 の範囲で乱数を取得

0 ~ 9 の範囲で乱数を取得するには、abs() 関数を使用して絶対値を取得後に、% を使用して範囲を決定します。

関連記事:SQLite,絶対値を取得(確認)する

select abs(random()) % 10;

乱数の範囲

random() 関数で取得できる乱数の範囲について、SQLite のサイトには以下のように記述されています。

The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807.

URL: (https://www.sqlite.org/lang_corefunc.html#random)
アクセス日時: 2018/04/15 00:38
 
よって、random() 関数で取得できる乱数の範囲は、-9223372036854775808 ~ +9223372036854775807 ということが確認できました。

スポンサーリンク

実行結果

random() 関数の挙動を確認

まずは、random() 関数の挙動について確認します。

以下は、-9223372036854775808 ~ +9223372036854775807 の範囲で乱数を取得しています。

sqlite> 
sqlite> select random();
-1386373522209644327

上記に示した通り、乱数を取得することができました。

0 ~ 9 の範囲で乱数を取得

以下は、random() 関数を使用して、0 ~ 9 の範囲で乱数を取得しています。

sqlite> 
sqlite> select abs(random()) % 10;
3
sqlite> select abs(random()) % 10;
0
sqlite> select abs(random()) % 10;
1
sqlite> select abs(random()) % 10;
6
sqlite> select abs(random()) % 10;
8

 
上記に示した通り、0 ~ 9 の範囲で乱数を取得することができました。

タイトルとURLをコピーしました