【SQL】STRPOS関数とは?意味や使い方までわかりやすく解説

今回はBigQueryやAmazon Redshift等で使うことが出来るSTRPOS関数について紹介したいと思う。

STRPOS関数とは?

STRPOS関数は対象の文字列から指定した文字列の位置を整数で返してくれる文字列関数だ。

例えば、下記sample_addressテーブルのmail_addressカラムにおけるそれぞれの@の位置を知りたい場合があるとする。

STRPOS関数

上記データに対して、下記のようにSTRPOS関数を使用して@の位置を取得したクエリとその結果が下記となる。

STRPOS②

STRPOS関数により、メールアドレスの@の位置を整数で取得出来ていることがお分かりいただけると思う。

このようにSTRPOS関数は対象の文字列において指定した文字列(1文字でも2文字以上でもOK)が左から何番目に位置するかを教えてくれる。

ちなみに、STRPOSという名称が「わかりにくい、、、」と感じるかもしれないが、STRとPOSに分解すると意味が分かってくる。

  • STR→STRING(文字列)
  • POS→POSITION(位置)

という形でSTRINGとPOSITIONの略がくっついた名称になっている。

訳してしまえば、「文字列の位置に関係する関数」だということが理解しやすいはずだ。

スポンサーリンク

STRPOS関数の使い方

STRPOS関数の使い方は下記だ。

STRPOS③

先ほどのメールアドレスの中から@の位置を返す具体例の場合、下記のように指定すればOKだ。

STRPOS④

STRPOS関数は上記のように使うことが出来る。

STRPOS関数が返してくれる値(戻り値)は整数型(BQではINT64)となる。

ちなみに指定する文字列は1文字だけでなく、下記のように2文字以上でも指定できる。

STRPOS⑤
上記のように2文字以上を指定した場合、指定した文字列が始まる文字の位置(@sampleの場合は@の位置)が返される点を覚えておきたい。

スポンサーリンク

まとめ

今回は指定した文字列が対象カラムの各値においてSTRPOS関数を紹介した。

STRPOS関数はSUBSTR関数やSUBSTRING関数などの他の関数と組み合わせて使われることが多く、単体で使われることはあまりないかもしれない(私はあまり見たことがない)。

他の関数と組み合わせて使われるため、「STRPOS関数がどんなことをしているのか?」がわかりにくい場合が多数あると思うので、そういう場合は本記事のようにSTRPOS関数の部分だけを抜き出してみて、どのような処理をしているかを確認してみると理解しやすいと思う。

 

おすすめの記事