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

2020年7月13日

スポンサーリンク

説明

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

 

引数

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

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

 

返り値

文字位置(数値)

 

コード

CREATE OR REPLACE FUNCTION public.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$;

ALTER FUNCTION public.indexof(character varying, character varying)
    OWNER TO postgres;

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

 

実行例

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

 

PostgreSQLの構文まとめを書いています

入門~経験者まで「基本構文・こんな時どう書くんだっけ?」のまとめ