各種データベースの乱数生成

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