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

2021年5月1日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