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

2020年6月21日

スポンサーリンク

説明

ランダムな値を生成する(範囲指定可能)

 

引数

引数1(integer):ランダム値の範囲(最大値)

引数2(integer):ランダム値の範囲(最小値)

 

返り値

ランダム値

 

コード

CREATE OR REPLACE FUNCTION rand(integer,integer)
  RETURNS numeric AS
$BODY$
declare

	i_min	alias for $1; --引数1:ランダム値の範囲(最大値)
	i_max	alias for $2; --引数2:ランダム値の範囲(最小値)
	
	i_temp	integer;
	

BEGIN

	i_temp = round(( random() * (i_max - i_min) )::numeric, 0) + i_max;

	return i_temp;

END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION rand(integer,integer)
  OWNER TO postgres;

※PostgreSQL12で動作確認済み


実行例

select * From rand(1,100);  --50

 

他にもこんな関数があります(数値操作の関数)

数値であるかのチェック(IsNumeric)

四捨五入(Round)

消費税を計算する(8%、10%対応)

数値をカンマで区切る

Decode関数