数値だけでなく文字列に対しても演算子や関数が用意されています。
INSTRREV関数
文字関数の INSTRREV関数 を紹介します。
INSTRREV関数の構文は以下のとおりです。
select INSTRREV(開始位置,列名,探したい文字,compare) from テーブル名
| 引数 | 内容 |
|---|---|
| 列名 | 検索対象となる列名・定数・数式を指定する。 |
| 探したい文字 | 探したい文字を指定する。2文字以上も指定可能 |
| 開始位置 | 省略可能。指定要素の何文字目から検索するかを指定。省略した場合は最後から検索。 |
| compare | 省略可能。文字列比較の種類を指定します。下記外部リンク参照 |
INSTRREV関数は探したい文字が指定した要素の何文字目から始まるかを返します。
INSTR関数は要素内を引数「開始位置」から後ろ方向に探し始めて最初に見つかった位置を先頭からの文字数で返しますが、 INSTRREV関数は要素内を「開始位置」から前方向に探し始めて最初に見つかった位置を先頭からの文字数で返します。
列は文字列だけでなく、数値や定数を指定することが出来ます。
INSTRREV関数使用例
最後から検索する場合は引数「開始位置」は省略可能。
引数「探したい文字」が見つかった場合は、先頭から何文字目かを返す。
INSTR関数と比較してみます。
それぞれ「‐」を検索しています。
INSTR関数は1文字目の「‐」にヒットしていますので全て2文字目が返ってきています。
ISTRREV関数は後ろから検索を行いますので2文字目の「‐」にヒットしています。
返ってくる値は「-」で囲われた2つ目の項目の文字数が違うため、それぞれ異なっていますが、2つ目の「-」が先頭から何文字目にあるかが返ってきているのが確認できると思います。

引数「探したい文字」は複数文字を指定することも可能。
「76」を指定すると「76」と並んでいる箇所の最初の位置を返します。
該当する箇所がない場合は0を返します。

開始位置を指定すると、最後からではなく先頭から指定した文字数の位置の文字から検索が始まります。
この例では先頭から5文字目の位置から4→3→2→1文字目と検索していきます。
返ってくる答えは先頭からの文字数になります。
