【PostgreSQL】ランダム値を生成する自作関数(Rand)
ランダム値を生成する自作関数(Rand)
ランダムな値を生成する(範囲指定あり)
引数
引数1(integer):ランダム値の範囲(最大値)
引数2(integer):ランダム値の範囲(最小値)
返り値
ランダム値(整数値)
コード
CREATE OR REPLACE FUNCTION rand(i_min integer,i_max integer)
RETURNS numeric AS
$BODY$
declare
BEGIN
return round(( random() * (i_min - i_max) )::numeric, 0) + i_max;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION rand(integer,integer)
OWNER TO postgres;
※PostgreSQL9.5 , 9.6 , 10 , 11 , 12で動作確認済み 自作関数の実行方法はこちら
実行例
--1から100の範囲でランダム値を生成する
select * From rand(1 , 100); --結果:50
--1,000から10,000の範囲でランダム値を生成する
select * From rand(1000 , 10000); --結果:5000