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

2020年6月21日

スポンサーリンク

説明

引数が数値であるかのチェックをします。

 

引数

引数1(character varying):数値かチェックする文字

 

返り値

True:数値 False:数値でない

 

コード

CREATE OR REPLACE FUNCTION isnumeric(c_num character varying)
  RETURNS boolean AS
$BODY$
declare
 
	n_result 		numeric;  --一時変数
	
BEGIN

	select cast(c_num as numeric) into n_result;

	--castできる時はtrueでリターン
	return TRUE;
	
	EXCEPTION
	WHEN OTHERS THEN
	
	--castできずエラーになる時はfalseでリターン
	return FALSE;
 
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION isnumeric(character varying)
  OWNER TO postgres;

※PostgreSQL12で動作確認済み

 

実行例

select * from isnumeric('123abc456');
--False

 

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

四捨五入(Round)

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

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

数値をカンマで区切る

Decode関数