【PostgreSQL】検索文字位置の取得(strpos)

2020年11月13日PostgreSQL構文

検索文字位置を取得する

文字列の中から、検索文字が何文字目にあるか検索するにはstrposを使用します。

見つからなかった場合は0が、見つかった場合は1以上の数値が返ります。

strpos( 検索対象の文字列 , 検索する文字列)

 

 

使用例

select strpos('windows','d');    --4(=4文字目にある)
select strpos('abcdefg','ef');   --5(=5文字目にある)
select strpos(upper('abcdefg'),upper('Cde')); --3(大文字小文字の区別なし)
select strpos('abcdefg','xyz');  --0(見つからない場合は0が返る)

 

ちょっとだけ緩く比較する

strposでは大文字小文字が区別されるので、区別しない+前後スペース除外した例を示します。

--検索対象と検索する文字列をそれぞれ、upperとtrimをかけて検索する
select strpos(trim(upper('ABCDEFGHIJKLMN')),trim(upper(' efg ')));  --5