Oracle
DBMS_RANDOM.VALUE は、0から1の数を生成し、精度は38桁
SELECT DBMS_RANDOM.VALUE FROM dual
は、0.73988067528604570993642928024798559837 を生成したりする。
整数 1~1000 の範囲で欲しい時は
SELECT TRUNC(DBMS_RANDOM.VALUE(1,1000)) FROM dual
整数 -1000~0 の範囲で欲しい時は
SELECT TRUNC(DBMS_RANDOM.VALUE(-1000,0)) FROM dual
PostgreSQL
random() 関数を使う。
SELECT random()
random() も、0から1の数を生成し、PostgreSQL version 15 では、
0.17280202311237436 の様になる。小数点桁数=17
整数範囲指定して整数で欲しい時は、
TRUNC((random() * (最小値 - 最大値)) + 最大値
という書式に従って、
整数 1~1000 の範囲で欲しい時は、
SELECT TRUNC(random() * (1 - 1000)) + 1000
整数 -1000~0 の範囲で欲しい時は
SELECT TRUNC(random() * (-1000 - 0))
MySQL 8.0
RAND() 関数を使う。
RAND() も、0から1の数を生成し、
SELECT RAND()
結果は、0.1396465479765521 のように、小数点桁数=16
整数 1~1000 の範囲で欲しい時は、
SELECT TRUNCATE(RAND()*1000,0) + 1
整数 -1000~0 の範囲で欲しい時は
SELECT (TRUNCATE(RAND()*1000,0) + 1) * -1