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

PostgreSQL自作関数

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

文字列の先頭から指定した文字数を削除する関数です。

-- 例:'abcdefghijk'の先頭5文字を削除する
select * from char_remove('abcdefghijk',5);  -- fghijk

 

引数

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

引数2(integer):削除する文字数

 

返り値

削除した後の文字列

 

コード

CREATE OR REPLACE FUNCTION char_remove(character varying,integer)
  RETURNS character varying AS
$BODY$
declare

	a_char  	alias for $1;	--引数1:削除する対象の文字列
	i_index  	alias for $2;	--引数2:削除する文字列

begin

	return substring(a_char , i_index + 1, length(a_char) - i_index + 1);
	
end;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION char_remove(character varying,integer)
  OWNER TO postgres;

※PostgreSQL12で動作確認済み 自作関数の実行方法はこちら

 

実行例

select * from char_remove('abcde',2); --'abcde'の先頭2文字を削除する
--'cde'

 

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

2つの文字列を比較して一致するかチェックする

文字列をバイト数で計算する

ひらがなをカタカナに置換する

カンマ区切り文字列の指定カンマ箇所を取得する

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

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