index_of関数
index_of関数は、検索文字列の最初の文字(ある場合)の最初の出現時の位置を決定します。
構文
returnvalue index_of(source, search_string [, start_position])
source ::= any*
search_string ::= any*
start_position ::= integer*
returnvalue ::= integerセマンティクス
- source
- 
                        検索する入力文字列。この引数は、一連の文字列に暗黙的にキャストされます。 
- search_string
- 
                        ソースで検索する必要がある文字列。この引数は、一連の文字列に暗黙的にキャストされます。 
- start_position
- 
                        検索を開始するソース内の位置を数値で示すオプションの整数。 デフォルトのstart_positionは0で、これはソースの最初の文字の位置でもあります。 start_positionに負の値が指定されている場合は、0とみなされます。 
- returnvalue
- 
                        検索文字列の最初の文字の最初の出現時の位置を返します。 search_stringがソースに存在しない場合は-1を返します。 search_stringの長さが0である場合、ソースの値に対して0を返します。 引数がNULLの場合はNULLを返します。 引数が空の順序であるか、複数の項目がある順序の場合はNULLを返します。 start_position引数が整数でない場合はエラーを返します。 
注意:
戻り値は、start_positionの値に関係なく、ソースの先頭の相対値になります。例11-18 index_of関数
この例では、firstnameの"r"の索引が選択されています。
出力では、Johnにはrが含まれないため、-1が返されます。PeterとMaryには、それぞれ4と2の位置にrが含まれます。
SELECT firstname, index_of(firstname,"r") FROM users; +-----------+----------+
 | firstname | Column_2 |
 +-----------+----------+
 | John      |       -1 |
 | Peter     |        4 |
 | Mary      |        2 |
 +-----------+----------+例11-19 index_of関数
この例では、firstnameの"e"の索引が選択されています。出力では、Peterにeが2つ含まれていますが、最初のオカレンスの位置のみが返されます。
SELECT firstname, index_of(firstname,"e") FROM users; +-----------+----------+
 | firstname | Column_2 |
 +-----------+----------+
 | John      |       -1 |
 | Peter     |        1 |
 | Mary      |       -1 |
 +-----------+----------+