【PostgreSQL】指定した文字の出現回数をカウントする

PostgreSQL自作関数

指定した文字の出現回数をカウントする

文字列から指定した文字の出現回数をカウントする

 

 

引数

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

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

 

 

返り値

文字の出現回数(数値)

 

 

コード

CREATE OR REPLACE FUNCTION count_appearances(
    character varying,
    character varying)
  RETURNS integer AS
$BODY$
declare
	c_target_char	alias for $1;	--引数1:対象の文字列
	c_seach_char	alias for $2;	--引数2:探す文字列
begin

	return (length(c_target_char) - length(replace(c_target_char, c_seach_char, ''))) / length(c_seach_char);

end;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

 

 

実行例

--文字列'AAbbccddefghiA'から'A'の個数をカウントする
select * From count_appearances('AAbbccddefghiA','A');  --結果:3

--文字列'abcdefabcdef'から'abc'の個数をカウントする
select * From count_appearances('abcdefabcdef','abc');  --結果:2