【PostgreSQL】文字列から検索文字の位置を取得する(IndexOf)
説明
ある文字列の中で、指定した文字列が最初に出現する位置を返す自作関数です。
引数
引数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で動作確認済み 自作関数の実行方法はこちら
あわせて読みたい
この自作関数で使用している「検索文字位置の取得(strpos)」は、こちらで紹介しています。
実行例
select indexOf('abcdefgh', 'f'); --【結果】:6