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

PostgreSQL自作関数

説明

ある文字列の中で、指定した文字列が最初に出現する位置を返す自作関数です。

 

 

引数

引数1(character varying):ある文字列(この文字列の中から特定の文字を探します)

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

 

 

返り値

文字位置(数値)

 

 

コード

CREATE OR REPLACE FUNCTION indexof(
	c_target_char character varying,
	c_search_char character varying)
    RETURNS integer LANGUAGE 'plpgsql' COST 100 VOLATILE 
AS $BODY$
declare
BEGIN

	--文字列と検索文字列が空かnullなら0とする
	if (c_target_char is null) or (c_target_char= '') then
		return 0;
	end if;
	if (c_search_char is null) or (c_search_char = '') then
		return 0;
	end if;

	RETURN strpos(c_target_char, c_search_char);

END;
$BODY$;

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

 

 

 

実行例

 select indexOf('abcdefgh', 'f');  --【結果】:6