【PostgreSQL】ランダム値を生成する自作関数(Rand)

PostgreSQL自作関数

ランダム値を生成する自作関数(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

 

PostgreSQLの構文まとめを書いています

入門~経験者まで「基本構文・こんな時どう書くんだっけ?」のまとめ