• ベストアンサー

ポストグレスでisnumeric関数のようなものを使いたい

ポストグレスでisnumeric関数のようなものを使いたい アクセスから移植しているのですが。 つまり値が数値かどうかを判断する関数なんですが。 いいのがありませんか? どうすれば判別できるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

PostgreSQLでは、正規表現によるパターンマッチングができますから、それでやってたらどうでしょう

参考URL:
http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/functions-matching.html
lord_chan
質問者

補足

こんな感じで作りましたがどうでしょう? CREATE OR REPLACE FUNCTION IsNumeric( varchar(255) ) RETURNS boolean AS ' DECLARE pstrInParam ALIAS FOR $1; i integer; bNotNumeric boolean; BEGIN bNotNumeric := False; IF SUBSTRING(pstrInParam, 1, 1) ~ ''[0-9]'' OR SUBSTRING(pstrInParam, 1, 1) = ''-'' OR SUBSTRING(pstrInParam, 1, 1) = ''+'' THEN ELSE RETURN False; END IF; FOR i IN 2..Length(pstrInParam) LOOP IF NOT SUBSTRING(pstrInParam, i, 1) ~ ''[0-9]'' THEN IF SUBSTRING(pstrInParam, i, 1) <> ''.'' THEN bNotNumeric := True; END IF; END IF; END LOOP; RETURN NOT bNotNumeric; END; ' LANGUAGE 'plpgsql';

すると、全ての回答が全文表示されます。

関連するQ&A