単語の先頭文字を大文字に変換する関数

単語の先頭文字を大文字に変換します。

 

引数

引数1(character varying): 変換する対象の文字列

 

返り値

変換後の文字列

 

コード

CREATE OR REPLACE FUNCTION char_initcap(character varying)
  RETURNS character varying AS
$BODY$
declare

	c_target_char	alias for $1;

BEGIN

	return initcap(c_target_char); 

END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

 

実行例

select * From char_initcap('abcdef');
--【結果】Abcdef

 

関連記事

文字から数値、数値から文字へ変換する

文字の切り取り(Left、Right、Substring)

文字列中に指定した文字が含まれるかのチェック【自作関数】

2つの文字列を比較して一致するかチェックする【自作関数】

文字を左のX文字目から○文字切り取る(Mid関数)【自作関数】

検索文字を後ろから検索する(LastIndexOf)【自作関数】

文字列から指定した文字数を削除する【自作関数】

文字列から検索文字の位置を取得する(IndexOf)【自作関数】

文字列が空であるかのチェック【自作関数】

文字列のバイト数を取得する【自作関数】

ひらがなをカタカナに置換する【自作関数】

カタカナをひらがなに置換する【自作関数】

全角から半角へ変換する【自作関数】

半角から全角へ変換する【自作関数】

 

文字列中に指定した文字が含まれるかのチェック

文字列に、特定の文字列が含まれるかチェックする関数です。

 

引数

引数1(character varying): 対象の文字列

引数2(character varying): 探す文字列

 

返り値

true:含む、false:含まれない

 

コード

CREATE OR REPLACE FUNCTION check_char_exists(
    c_target_char character varying,
    c_replace_char character varying)
  RETURNS boolean AS
$BODY$
declare
BEGIN

	--対象の文字列でreplaceして、元の文字列と異なったら含まれると判断する
	if c_target_char = replace(c_target_char,c_replace_char,'') then
		return false;
	else
		return true;
	end if;
	
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

※ PostgreSQL9.5 , 9.6 , 10 , 11 , 12で動作確認済み 自作関数の実行方法はこちら

 

実行例

--'abcdef'に'bc'が存在するか
select * From check_char_exists('abcdef','bc');   -- true

--'abcdef'に'xyz'が存在するか
select * From check_char_exists('abcdef','xyz');  -- false

 

関連記事

文字から数値、数値から文字へ変換する

文字の切り取り(Left、Right、Substring)

文字列中に指定した文字が含まれるかのチェック【自作関数】

2つの文字列を比較して一致するかチェックする【自作関数】

文字を左のX文字目から○文字切り取る(Mid関数)【自作関数】

検索文字を後ろから検索する(LastIndexOf)【自作関数】

文字列から指定した文字数を削除する【自作関数】

文字列から検索文字の位置を取得する(IndexOf)【自作関数】

文字列が空であるかのチェック【自作関数】

文字列のバイト数を取得する【自作関数】

ひらがなをカタカナに置換する【自作関数】

カタカナをひらがなに置換する【自作関数】

全角から半角へ変換する【自作関数】

半角から全角へ変換する【自作関数】

 

概要

対象の文字列が数値であるかのチェックをする関数です。

 

引数

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

 

返り値

true:数値 false:数値でない

 

コード

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

    --数値へcastする
	select cast(c_num as numeric) into n_result;

	--castできる時はtrueでリターン
	return TRUE;
	
    --castできずエラーになる時はここのEXCEPTIONに入る
	EXCEPTION
	WHEN OTHERS THEN
	--エラー時はfalseでリターン
	return FALSE;
 
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

※ PostgreSQL9.5 , 9.6 , 10 , 11 , 12で動作確認済み 自作関数の実行方法はこちら

 

実行例(呼び出し例)

select * from isnumeric('123456');   -- true :数値
select * from isnumeric('abcdef');   -- False:数値でない

 

関連記事

四捨五入・切り上げ・切り捨て(Round)

文字から数値、数値から文字へ変換する

数値をカンマで区切る【自作関数】

数値を文字に変換する(to_char)

概要

四捨五入、切り上げ、切り捨て用の自作関数です。

「第〇位」を「四捨五入、切り上げ、切り捨て」か、分けることができるようになっています。

 

 

この自作関数で使っている構文

この自作関数では、次の関数を使用しています。

-- 1.四捨五入
round(数値 , 小数点以下をこの桁数にする)  -- 四捨五入
-- 例
select * From round(123.45678,3);      -- 123.457(小数第3位四捨五入)

-- 2.切り捨て
trunc(数値 , 小数点以下をこの桁数にする)  -- 切り捨て
-- 例
select * From trunc(123.45678,3);      -- 123.456(小数第3位切り捨て)

 

 

引数

引数1(numeric): 四捨五入する対象の数値

引数2(integer) : 計算するフラグ (1:四捨五入、2:切り上げ、3:切り捨て)

引数3(integer) : 小数点何桁まで表示するか(2を指定:小数2桁まで表示する)

 

 

返り値

計算後の値

 

 

コード

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

	n_target        alias for $1; 	--引数1:四捨五入する対象の数値
	i_flg           alias for $2; 	--引数2:計算するフラグ (1:四捨五入、2:切り上げ、3:切り捨て)
	i_digits        alias for $3; 	--引数3:小数点何桁まで表示するか(2を指定:小数2桁まで表示する)
	c_add           character varying;

begin

	if i_flg = 1 then
		--四捨五入
		return round(n_target,i_digits);
	
	elseif i_flg = 2 then
		--切り上げ
		c_add ='0.';
		FOR i IN 1..i_digits LOOP
		    c_add = c_add || '0';
		END LOOP;
		c_add = c_add || '9';

		return trunc(n_target + cast(c_add as numeric),i_digits);
	
	elseif i_flg = 3 then
		--切り捨て
		return trunc(n_target,i_digits);
	end if;

	return null;

end;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

※ PostgreSQL9.5 , 9.6 , 10 , 11 , 12で動作確認済み 自作関数の実行方法はこちら

 

 

実行例(呼び出し例)

四捨五入

--小数第3位四捨五入(小数2桁まで表示する)
select * From round(1.2345678,1,2);  --  '1.23'

 

切り上げ

--小数第4位切り上げ(小数3桁まで表示する)
select * From round(1.2345678,2,3);  --'1.235'
 

切り捨て

--小数第4位切り捨て(有効桁数3桁)
select * From round(1.2345678,3,3);  --'1.234'

 

 

関連記事

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

文字から数値、数値から文字へ変換する

数値をカンマで区切る【自作関数】