【PostgreSQL】検索文字位置の取得(strpos)
検索文字位置を取得する
文字列の中から、検索文字が何文字目にあるか検索するには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
関連記事(文字列操作)
・文字の切り取り(Left、Right、Substring)